【问题标题】:android 1.6 httpresponse doesn't include a location headerandroid 1.6 httpresponse 不包含位置标头
【发布时间】:2010-12-17 03:41:23
【问题描述】:

我有一个 android 1.6 应用程序,我正在尝试获取 HTTP GET 响应的位置标头。但是,当我调用 getLastHeader("location") 时,它返回 null。我什至通过调试器进入响应变量并且没有发送位置标头。我需要在任意网站上执行此操作,但使用 google 进行测试仍然会产生事故。我认为位置是要读取的默认标题? 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();
 }
}

非常感谢您的帮助 :) 我正在寻找获取位置的解决方案或解释为什么我没有得到它:/

【问题讨论】:

    标签: java android http-headers location


    【解决方案1】:

    HTTP RFC,点 14.30

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

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

    您也可以使用 Firebug 检查返回的标头。

    【讨论】:

    • 我应该如何实现以获得重定向的 url?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-27
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2011-09-19
    • 2011-03-21
    • 2021-10-28
    相关资源
    最近更新 更多