蝴蝶效应-虎的博客
博客信息

(HttpClient技术)Httpclient如何设置超时时间timeout

0
发布时间:『 2019-10-08 21:52』  博客类别:Httpclient基础知识  阅读(3063) 评论(1)

前言
    Httpclient 3.x和Httpclient 4.x如何设置超时时间timeout呢?Httpclient访问网站默认超时时间是60s,如果不设置超时时间,它会一直等待这个时间,才会断开连接,网络不佳的情况下,等待很久,是很影响程序的执行效率的,设置超时时间,可以提高Httpclient的运行效率,那么如何设置超时时间呢?

    Httpclient 3.X和Httpclient 4.X的版本设置超时时间的方式各不一样,具体方法如下;

Httpclient 3.X 设置超时时间的方式:

  
  httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(40000);
  httpClient.getHttpConnectionManager().getParams().setSoTimeout(40000);

Httpclient 4.X设置超时时间的方式:

 
//一般来讲,设置这两个超时时间就可以了
httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 12000);
httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 12000);

Httpclient使用例子:
    给大家分享一个设置超时时间访问限制的网站,希望有所帮助!

 
//请求百度判断代理IP是否有效的代码
public static boolean isIpUsefull(String ip,int port, DefaultHttpClient httpClient
, String webAgent) {  
   boolean ret = false ;

   System.out.println(ip+":"+port) ;
   httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 12000);
   httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 12000);
   
   if(ip==null || ip.equals("0")){
    return false ;
   }
   HttpHost proxy = new HttpHost(ip,port);
   httpClient.getParams().setParameter(ConnRouteParams.DEFAULT_PROXY, proxy);
   
   
   int state = 0 ;
   try {
    Thread.sleep(3000) ;
    HttpGet g1 = new HttpGet("http://www.baidu.com") ;
    g1.setHeader("Accept", "text/html, application/xhtml+xml, */*") ;
    g1.setHeader("User-Agent", webAgent) ;
    HttpResponse response2 = httpClient.execute(g1) ;
//httpClient.executeMethod(g1) ;
    if(response2.getStatusLine().getStatusCode()==200){
     
     state = 1 ;
    }else if(response2.getStatusLine().getStatusCode()==302){
     state = 1 ;
    }
   }catch(Exception e){
    System.out.println(e.toString());
   }
   
   if(state == 1){
    ret = true ;
   }else{
    ret = false ;
   }
   
   return ret ;
 }

 

注明: 代码中的网站均为例子,仅供参考,不一定真实有效额,请勿全部Copy。

 

关键字:   Java     JavaHttpClient     Java爬虫     Httpclient设置超时时间timeout  
评论信息
1楼    180.107.97.89:交换链接吗? https://www.lezaizhuji.com/ SiteGround怎么样 qq 1392575940      [ 2019-10-10 13:36 ]
发表评论
验证码: 
博主信息
【蝴蝶效应-虎】
  年轻只有一次,但是梦想却可以奋斗一辈子!

博主寄语:也曾年少轻狂,无奈时光易老!希望将绵薄的技术分享进行到底。
有求必应:如果需要帮助,请给我留言,一定知无不言,言无不尽,请大家多多支持博主,谢谢。
分享无悔:如果有一天你可以回到过去,你还愿意成为现在的自己吗?不让自己后悔,时光无悔。
  • 36文章总数
  • 5486访问次数
  • 38建站天数
  • 友情链接
    Copyright © 2019-2025 蝴蝶效应-虎
    陕ICP备19011911号-2