我有一个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();
}
}
非常感谢帮助:)我要么找一个解决方案来获取位置或解释为什么我没有得到它:/
答案 0 :(得分:2)
来自HTTP RFC,第14.30点
位置响应标头字段是 用于将收件人重定向到 Request-URI以外的位置 完成请求或 识别新资源。对于 201(创建)响应,位置 是新资源的 由请求创建。对于3xx 回应,位置应该 表示服务器的首选URI 用于自动重定向到 资源。字段值包括 一个绝对的URI。
因此,如果您的响应状态为200,则不应设置Location标头,因此您具有null。
您还可以使用Firebug检查返回的标题。