使用HttpClient获取网页源码

需要的包:commons-codec-1.3.jar commons-httpclient-3.1.jar

/**
     * 通过get方式取得html
     * @param url
     * @param timeout
     * @param charset
     * @return
     */
    public static String getHTMLByUrl(String url, int timeout, String charset){
        if (charset == null)
          charset = "utf-8";
        HttpMethod result = new GetMethod(url);
        return doHttp(result,timeout,charset);
    }
    
    /**
     * 通过post方式取得html
     * @param url
     * @param timeout
     * @param charset
     * @param params
     * @return
     */
    public static String getHTMLByUrl(String url, int timeout, String charset,Map<String,String> params){
        if (charset == null)
          charset = "utf-8";
        PostMethod result = new PostMethod(url);
        NameValuePair[] nameValues =new NameValuePair[params.size()];
        NameValuePair simcard;
        String[] keys=params.keySet().toArray(new String[params.size()]);
        String key;
        for(int i=0;i<keys.length;i++){
              key=keys[i];
              simcard = new NameValuePair(key,params.get(key));
              nameValues[i]=simcard;
        }
        result.setRequestBody(nameValues);
        return doHttp(result,timeout,charset);
     }
     
     public static String doHttp(HttpMethod result,int timeout, String charset){
            HttpClient client = new HttpClient();
            try {
                  HttpConnectionManagerParams managerParams = client
                    .getHttpConnectionManager().getParams();

                  managerParams.setConnectionTimeout(timeout);
                  client.executeMethod(result);          
                  InputStream resStream = result.getResponseBodyAsStream();
                  BufferedReader br = new BufferedReader(new InputStreamReader(resStream, charset));
                  StringBuffer resBuffer = new StringBuffer();
                  String resTemp = "";
                  while ((resTemp = br.readLine()) != null) {
                    resBuffer.append(resTemp);
                  }
                  return resBuffer.toString();
                }
                catch (HttpException e)
                {
                  return null;
                }
                catch (IOException e) {
                  return null;
                }
                catch (Exception e) {
                  return null;
                } finally {
                  result.releaseConnection();
                }
     }

 

转载于:https://www.cnblogs.com/zhanghaoh/archive/2013/01/05/2845467.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值