• HttpClient 操作总结


    1、HttpClient4.3和之前版本设置超时(set timeout)区别:

      参考:http://my.oschina.net/u/577453/blog/173724

      解析:如果不设置超时的话,可能会使得get的时间很久,造成程序假死(挂着不动不结束)

      最近用到了HttpClient写微博爬虫,发现创建一个HttpClient对象吧,每一个版本的都不一样,

      3.X是这样的

    1
    HttpClient httpClient=new DefaultHttpClient();

      4.3是这样的

    1
    CloseableHttpClient httpClient = HttpClients.createDefault();

      这些改动还不是很大,但是超时设置,HttpClient有三种超时设置,就改变不少了,讲一些最简单最易用的超时设置方法。

      这是个3.X的超时设置方法  

    1
    2
    3
    HttpClient client = new HttpClient();
    client.setConnectionTimeout(30000); 
    client.setTimeout(30000);
      
    1
    2
    HttpClient httpClient= new HttpClient(); 
    httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);

      4.X版本的超时设置(4.3后已过时)

    1
    2
    3
    HttpClient httpClient=new DefaultHttpClient();
    httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,2000);//连接时间
    httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,2000);//数据传输时间

      4.3版本超时设置

    1
    2
    3
    4
    5
    CloseableHttpClient httpClient = HttpClients.createDefault();
    HttpGet httpGet=new HttpGet("http://www.baidu.com");//HTTP Get请求(POST雷同)
    RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(2000).setConnectTimeout(2000).build();//设置请求和传输超时时间
    httpGet.setConfig(requestConfig);
    httpClient.execute(httpGet);//执行请求

      更重要的是,4.3版本不设置超时的话,一旦服务器没有响应,等待时间N久(>24小时),亲身泪奔经历过啊!。

  • 相关阅读:
    SQL INNER JOIN
    SQL JOIN
    SQL OUTER JOIN
    SQL CROSS JOIN
    SQL 基础:Select语句,各种join,union用法
    Morton Code
    vs 字体
    sql 语言
    sqllite3
    linux怎么区别文本文件和二进制文件
  • 原文地址:https://www.cnblogs.com/DeeFOX/p/4015385.html
Copyright © 2020-2023  润新知