public void clientPost(String url)

{
  /* 1 生成 HttpClinet 对象并设置参数*/
    HttpClient httpClient=new HttpClient();
    //设置浏览器信息
    httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT,"Mozilla/5.0 (X11; U; Linux i686; zh-CN; rv:1.9.1.2) Gecko/20090803 Fedora/3.5.2-2.fc11 Firefox/3.5.2");
    //设置 Http 连接超时为5秒
    httpClient.getHttpConnectionManager().getParams().setConnectionTimeout(5000);
  
    /*2 生成 GetMethod 对象并设置参数*/
  GetMethod getMethod=new GetMethod(url); 
  
    //设置 get 请求超时为 5 秒
  getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT,5000);
    //设置请求重试处理,用的是默认的重试处理:请求三次
  getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
            new DefaultHttpMethodRetryHandler());
    
    /*3 执行 HTTP GET 请求*/
    try{ 
     int statusCode = httpClient.executeMethod(getMethod);
     /*4 判断访问的状态码*/
        if (statusCode != HttpStatus.SC_OK) 
        {
         System.err.println("Method failed: "+ getMethod.getStatusLine());
        }
    
        /*5 处理 HTTP 响应内容*/
        //HTTP响应头部信息,这里简单打印
        Header[] headers=getMethod.getResponseHeaders();
        for(Header  h:  headers){
           System.out.println(h.getName()+" "+h.getValue());
        }
        //读取 HTTP 响应内容,这里简单打印网页内容
         byte[] responseBody = getMethod.getResponseBody();//读取为字节数组
        System.out.println(new String(responseBody,"utf-8"));
        //读取为 InputStream,在网页内容数据量大时候推荐使用
        //InputStream response = getMethod.getResponseBodyAsStream();//
       
  }
  catch (HttpException e) 
  {
     // 发生致命的异常,可能是协议不对或者返回的内容有问题
      System.out.println("Please check your provided http address!");
      e.printStackTrace();
    } 
  catch (IOException e)
    {
           // 发生网络异常
    e.printStackTrace();
    } finally {
       /*6 .释放连接*/
     getMethod.releaseConnection();     
    }

}

http://www.yzcopen.com/ 已经上了很多例子

http://www.yzcopen.com/seo/spider 都是用HttpClient 做的

最新文章

  1. Golang接口(interface)三个特性(译文)
  2. C# 导入EXCEL 报错外部表不是预期的格式错误 .
  3. C#--声明类
  4. 编写更好的jQuery代码的建议(share)
  5. 关于EL表达式的大小写问题。谁来帮我解答?
  6. c#教程之事件处理函数的参数
  7. mysql命中索引规律
  8. Linux Logwatch的学习总结
  9. python __all__
  10. Python全栈开发记录_第一篇(循环练习及杂碎的知识点)
  11. 61.纯 CSS 创作一只咖啡壶(这个不好看)
  12. 编译sgbm_ros中遇到的问题
  13. c++的矩阵乘法加速trick
  14. VS2010/MFC编程入门之四十六(MFC常用类:MFC异常处理)
  15. Nginx教程(7) 正向代理与反向代理【总结】
  16. 1 cocos2dx源码分析-程序启动与主循环
  17. HDU3308 线段树(区间合并)
  18. CentOS 6.5 源码安装subversion-1.8.8,附加mod_dav_svn模块
  19. java字节码理解-入门
  20. HDU 6055 Regular polygon (暴力)

热门文章

  1. leetcode406 ,131,1091 python
  2. sql server ------创建本地数据库 SQL Server 排序规则
  3. Aspectj切入点语法定义
  4. python类(3)感悟
  5. Q9:Palindrome Number
  6. Runtime之方法交换
  7. 解决XML警告"No grammar constraints (DTD or XML Schema) referenced in the document"
  8. UML-迭代3-中级主题
  9. 面试准备 DOM
  10. vue组件传值 part2