android 1.6 httpresponse不包含位置标头

时间:2010-12-17 03:41:23

标签: java android http-headers location

我有一个Android 1.6应用程序,我正在尝试获取HTTP GET响应的位置标头。但是,当我调用getLastHeader(“location”)时,它返回null。我甚至通过调试器进入响应变量,并且没有发送位置标头。我需要在任意网站上执行此操作,但使用谷歌进行测试仍会产生不幸事故。我认为位置是一个默认的标题要读? android 1.6没有读取位置标题?我的代码如下:

HttpClient httpClient = DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://google.com");
try
{
 HttpResponse response = httpClient.execute(httpGet);
 if(response.getStatusLine().getStatusCode() == 200)
 {
  Header h = response.getLastHeader("location");
  String location = h.getValue();
 }
}

非常感谢帮助:)我要么找一个解决方案来获取位置或解释为什么我没有得到它:/

1 个答案:

答案 0 :(得分:2)

来自HTTP RFC,第14.30点

  

位置响应标头字段是   用于将收件人重定向到   Request-URI以外的位置   完成请求或   识别新资源。对于   201(创建)响应,位置   是新资源的   由请求创建。对于3xx   回应,位置应该   表示服务器的首选URI   用于自动重定向到   资源。字段值包括   一个绝对的URI。

因此,如果您的响应状态为200,则不应设置Location标头,因此您具有null。

您还可以使用Firebug检查返回的标题。