知识大全 HttpClient get请求在HttpResponse中无法获得Location的问题

Posted 环境

篇首语:最怕一生碌碌无为,还安慰自己平凡可贵。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 HttpClient get请求在HttpResponse中无法获得Location的问题相关的知识,希望对你有一定的参考价值。

HttpClient get请求在HttpResponse中无法获得Location的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  我通过client的get方法访问 通过返回的response的头部的location可以得到服务器的重定向地址(Location)

  在java环境下测试都没问题

  可是在安卓SDK环境下 却得不到response的location

  通过抓包分析 发现在android下

  client的实例执行get请求后 一起连重定向的get方法都执行了

  所以最后得到的response是重定向之后地址的get请求的response 所以得不到locatioon 而且responseCode== 而不是在java测试环境下的 说明这个时候的response是重定向之后的response

  这个时候需要阻止HttpClient的自动重定向 方法如下

  public static String getLocationMethod(String reqUrl Context context)

  DefaultHttpClient client = new DefaultHttpClient();

  String location = null;

  int responseCode = ;

  try

  final HttpGet request = new HttpGet(reqUrl);

  HttpParams params = new BasicHttpParams();

  params setParameter( redirects false); // 默认不让重定向

  // 这样就能拿到Location头了

  request setParams(params);

  HttpResponse response = (request);

  responseCode = response getStatusLine() getStatusCode();

  Header[] headers = response getAllHeaders();

  if(responseCode== )

  Header locationHeader = response getFirstHeader( Location );

  if (locationHeader != null)

  location = locationHeader getValue();

  

  

   catch (Exception e)

  e printStackTrace();

  MyLog d( exception= e toString());

  

  return location;

  

  添加 params setParameter( redirects false);之后返回结果如下

  ResponseCode=

  Date:Sun Jan : : GMT

  Server:Abloomy Http Server

  Connection:Close

  Cache Control:no store

  Pragma:no caches

  Last Modified:Sun Jan : : GMT

  Content Typ:text/; charset=iso

  Content Length:

  Expires:Mon Jan : : GM

cha138/Article/program/Java/hx/201311/26007

相关参考

知识大全 JAVA实现httpClient实例

JAVA实现httpClient实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  /*  *C

知识大全 HttpClient模拟登录12306购票网站

HttpClient模拟登录12306购票网站  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  首

知识大全 利用httpclient模拟站点的登录发帖回复

  HttpClient是ApacheJakartaCommon下的子项目可以用来提供支持HTTP协议的客户端编程工具包模拟浏览器的行为它提供了很多的方法来简化网络的访问虽然大部分的功能可以使用较底层

知识大全 在silverlight中使用downloader

  downloader对象为Silverlight插件提供了下载功能其通过HTTP(get)请求异步下载指定的内容  downloader所支持的event包括  Completed下载完成(Dow

知识大全 asp中get post提交表单区别

  asp教程中getpost提交表单区别  Get和Post方式的区别有点  get是从服务器上获取数据post是向服务器传送数据  get是把参数数据队列加到提交表单的ACTION属性所指的URL

知识大全 用GET

用GET  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一般来说把表格索引以及存储过程的DLL转

知识大全 酒桌上喝酒,酒量不好的你,这8个技巧你get到了吗

酒桌上喝酒,酒量不好的你,这8个技巧你get到了吗?古诗有云:何以解忧,唯有杜康中国酒文化源远流长,酒文化的兴起,也带来酒桌文化的兴起,随之而来的是酒桌上的劝酒文化。?在日常的生活交际中,如同学聚会、

知识大全 表单提交中Get和Post方式的区别

表单提交中Get和Post方式的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  get是从服

知识大全 使用GET方式与PHP交互[2]

使用GET方式与PHP交互[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs

知识大全 使用GET方式与PHP交互[1]

使用GET方式与PHP交互[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs