2

在我的项目中,我使用 Apache 的 HttpComponents 连接到服务器。以下代码创建 HttpClient。

HttpParams params = new BasicHttpParams();
params.setParameter("http.language.Accept-Language", "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3");
HttpProtocolParams.setUserAgent(params, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1003.1 Safari/535.19 Awesomium/1.7.1");

DefaultHttpClient client = new DefaultHttpClient(params);

但是当我执行一个请求时,没有发送 Accept-Language 字段。只是以下内容:

2013/04/06 20:52:07:129 MESZ [DEBUG] headers - >> GET /ws/search.json?text=&levelmin=0&levelmax=80&offset=1 HTTP/1.1
2013/04/06 20:52:07:129 MESZ [DEBUG] headers - >> Host: tradingpost-live.ncplatform.net
2013/04/06 20:52:07:129 MESZ [DEBUG] headers - >> Connection: Keep-Alive
2013/04/06 20:52:07:129 MESZ [DEBUG] headers - >> User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1003.1 Safari/535.19 Awesomium/1.7.1
2013/04/06 20:52:07:129 MESZ [DEBUG] headers - >> Cookie: s=abcdefg

这是一个错误还是我做错了什么?我只想拥有一个“全球”接受语言字段(对于我从一个客户发送的所有请求)。

欢迎任何帮助

4

1 回答 1

1

我无法解决这个问题,但对于任何出现相同问题的人来说,这里有一个解决方法:创建一个中心方法,例如

void prepareHttpRequest(HttpRequest request){
    request.addHeader("Accept-Language", "de-de,de;q=0.8,en-us;q=0.5,en;q=0.3");
}

您必须为您所做的每个 POST 或 GET 请求执行此操作。我知道这不是很优雅,但我唯一的解决方案,

于 2013-04-11T07:18:08.230 回答