简单的使用httpclient读取网页html例子

来源:互联网 发布:网络数字用语156 编辑:程序博客网 时间:2024/05/21 20:23

本位是我转载过来的 原文链接:http://www.sh0745.com/java/201501/20121513.html

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();     
    }

 }


0 0