HttpClient取得自定义的状态码302,并获取Header中的参数Location

1.导入如下两个包:

  

下载地址:http://files.cnblogs.com/files/zhougaojun/httpclient_lib.zip

2.接收Google返回的302状态码,并获得Location参数,如下是代码关键部分

      DefaultHttpClient httpclient = new DefaultHttpClient();
       String location = null;
       int responseCode = 0;
       try {
           final HttpGet request = new HttpGet(googleUrl);
           org.apache.http.params.HttpParams params = new BasicHttpParams();
           params.setParameter("http.protocol.handle-redirects", false); // 默认不让重定向
           request.setParams(params);
           HttpResponse response = httpclient.execute(request);
           responseCode = response.getStatusLine().getStatusCode();
           System.out.println(responseCode);
          if(responseCode==200){
             LOG.info(MessageFormat.format("[{0}]|[成功200]|[url:{1}]|[status:{2}]",tag,googleUrl,responseCode));
          }else if(responseCode==302){
             org.apache.http.Header locationHeader = response.getFirstHeader("Location");
             if(locationHeader!=null){
                    location = locationHeader.getValue();
                    LOG.info(MessageFormat.format("[{0}]|[成功{1}]|[url:{2}]|[status:{3}]|[{location:{4}}]",tag,responseCode,googleUrl,responseCode,location));
             }
          }
       } catch (Exception e) {
           e.printStackTrace();
           LOG.error(MessageFormat.format("[{0}]|[异常]|[url:{1}]|[status:{2}]|[content:{3}]]",tag,googleUrl,responseCode,e.getMessage()));
       }

3.Googleservice 302返回

时间: 2024-08-26 02:22:56

HttpClient取得自定义的状态码302,并获取Header中的参数Location的相关文章

谢烟客---------Linux之Bash基础特性条件测试&&自定义退出状态码(6)

条件测试 判断某需求是否满足,需要由测试机制来实现. 根据命令的执行状态结果,表达不同的测试条件 1.根据id命令的执行状态结果,判断用户是否存在 [[email protected] ~]# id root uid=0(root) gid=0(root) groups=0(root) [[email protected] ~]# echo $? 0 [[email protected] ~]# id help id: help: no such user [[email protected] 

bash自定义退出状态码exit

exit用来结束一个脚本,脚本中一旦遇到exit命令,脚本会立即终止:终止退出状态取决于exit命令后面的数字: exit [n]:自定义退出状态码: 举例说明. 1.未给脚本指定退出状态码,整个脚本的退出状态码取决于脚本中执行的最后一条命令的状态码: 2.给脚本指定退出状态码,整个脚本的退出状态码取决于指定的退出状态码:

HTTP状态码302、303和307的故事

<HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有302.303.307,以及他们的关系,一句"问题出在HTTP/1/1"让我一头雾水,莫名其妙:而第五章在讲重定向响应时,没有说到现在很常见的302,反而是说我从没遇到过的303和307.很是迷惑,对于这3个状态码,WiKi和RFC文档都有详解,下面我以我的思维添油加醋的描述一遍. 一.状态码--302 RFC1945(http://tools.ietf.org/html/rfc1945#page-34

HTTP状态码302,303,307间的那些事

<HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有302.303.307,以及他们的关系,一句“问题出在HTTP/1/1”让我一头雾水,莫名其妙.所以在网上收集到了这篇资源,mark. 一.状态码——302 RFC1945(http://tools.ietf.org/html/rfc1945#page-34),也就是HTTP1.0在介绍302时说,如果客户端发出POST请求后,收到服务端的302状态码,那么不能自动的向新的URI发送重复请求,必须跟用户确认是否该重发,因为

HTTP状态码302、303、307区别

HTTP状态码3XX表示重定向,表明浏览器需要执行某些特殊的处理以正确处理请求. 301 Moved Permanently 永久性定向.该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI. 302 Found 临时性重定向.该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问.和301相似,但302表示的资源不是永久移动,只是临时性的.换句话说,已移动的资源对应的URI将来还有可能发生变化,比如,用户把uri保存为书签,但不会像301状态码出

HTTP状态码之302、303和307

今日读书,无法理解HTTP302.303.307状态码的来龙去脉,决定对其做深究并总结于本文. <HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有302.303.307的关系,一句“问题出在HTTP/1/1”让我一头雾水,莫名其妙:而第五章在讲重定向响应时,没有说到现在很常见的302,反而是说我从没遇到过的303和307.很是迷惑,对于这3个状态码,WiKi和RFC文档都有详解,下面我以我的思维添油加醋的描述一遍. 一.状态码——302 RFC1945(http://to

HTTP协议 (六) 状态码详解

HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了.  如果是做AJAX,REST,网络爬虫,机器人等程序.还是需要了解其他状态码.  本文我花了一个多月的时间把所有的状态码都总结了下,内容太多,看的时候麻烦耐心点了. HTTP状态码的学习资料到处都有,但是都是理论上讲解.  本文介绍HTTP协议中的HTTP状态码(HTTP Status Code), 会对大部分的状态码都进行了详细的实例讲

HTTP状态码大全

完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅.HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0.你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request.getRequestProtocol来检查. 本部分余下的内容会详细地介绍 HTTP 1.1中的状

http 状态码(转)

HTTP状态码大全 完整的 HTTP 1.1规范说明书来自于RFC 2616,你可以在http://www.talentdigger.cn/home/link.php?url=d3d3LnJmYy1lZGl0b3Iub3JnLw%3D%3D在线查阅.HTTP 1.1的状态码被标记为新特性,因为许多浏览器只支持 HTTP 1.0.你应只把状态码发送给支持 HTTP 1.1的客户端,支持协议版本可以通过调用request.getRequestProtocol来检查. 本部分余下的内容会详细地介绍 H