Android HTTP调用没有设置Accept-Language标头?

时间:2014-01-25 01:25:23

标签: android google-chrome http-headers

我已将Google Nexus 4设备设置为Français (France)设置,并且正在浏览通过客户端的Accept-Language HTTP标头进行本地化的网站。

但是,当我查看到达服务器的Accept-Language设置时,我看到的只是en-US

如果我使用Dolphin浏览器在同一设备上查看同一网站,则标题会显示为fr-FR,en-US;q=0.8,并且该网站会以法语正确显示。

Nexus 4是一款运行Android 4.4.2的开发设备; Nexus 4 Build / KOT49H。 Chrome版本为32.0.1700.99。

有谁知道我如何让Chrome荣幸地使用该设备的语言设置?

我正在开发一个Android应用程序,并且期望HTTP客户端org.apache.http.client.HttpClient在调用我的Web服务时会尊重设置Accept-Language HTTP标头。但事实并非如此,而我正试图找出原因。

Chrome浏览器也会出现这种情况,所以我想我会看到是否有其他人有这个问题(发布我的代码有点复杂,而且不太合适)。

我是否真的必须根据我从Locale.getDefault().getLanguage()返回的内容显式设置HTTP标头?

似乎无法通过Android设置设置用户的语言。

1 个答案:

答案 0 :(得分:2)

您正在执行以下步骤吗? (我从你的问题中想象你已经是,但我想检查,因为这对我有用)

  HttpClient client = new DefaultHttpClient();
  HttpPost request = new HttpPost(webServiceUrl);
  request.addHeader("Accept-Language", "fr");
  HttpResponse response = client.execute(request);