<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java學習

    java,spring,structs,hibernate,jsf,ireport,jfreechart,jasperreport,tomcat,jboss -----本博客已經搬家了,新的地址是 http://www.javaly.cn 如果有對文章有任何疑問或者有任何不懂的地方,歡迎到www.javaly.cn (Java樂園)指出,我會盡力幫助解決。一起進步

     

    利用HttpClient獲取網頁內容

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.UnsupportedEncodingException;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
    import org.apache.commons.httpclient.NameValuePair;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.methods.PostMethod;
    public class HttpClientExample {
    // 獲得ConnectionManager,設置相關參數
    private static MultiThreadedHttpConnectionManager manager = new MultiThreadedHttpConnectionManager();
    private static int connectionTimeOut = 20000;
    private static int socketTimeOut = 10000;
    private static int maxConnectionPerHost = 5;
    private static int maxTotalConnections = 40;
    // 標志初始化是否完成的flag
    private static boolean initialed = false;
    // 初始化ConnectionManger的方法
    public static void SetPara() {
    manager.getParams().setConnectionTimeout(connectionTimeOut);
    manager.getParams().setSoTimeout(socketTimeOut);
    manager.getParams().setDefaultMaxConnectionsPerHost(
    maxConnectionPerHost);
    manager.getParams().setMaxTotalConnections(maxTotalConnections);
    initialed = true;
    }
    // 通過get方法獲取網頁內容
    public static String getGetResponseWithHttpClient(String url, String encode) {
    HttpClient client = new HttpClient(manager);
    if (initialed) {
    HttpClientExample.SetPara();
    }
    GetMethod get = new GetMethod(url);
    get.setFollowRedirects(true);
    String result = null;
    StringBuffer resultBuffer = new StringBuffer();
    try {
    client.executeMethod(get);
    // 在目標頁面情況未知的條件下,不推薦使用getResponseBodyAsString()方法
    // String strGetResponseBody = post.getResponseBodyAsString();
    BufferedReader in = new BufferedReader(new InputStreamReader(get
    .getResponseBodyAsStream(), get.getResponseCharSet()));
    String inputLine = null;
    while ((inputLine = in.readLine()) != null) {
    resultBuffer.append(inputLine);
    resultBuffer.append("\n");
    }
    in.close();
    result = resultBuffer.toString();
    // iso-8859-1 is the default reading encode
    result = HttpClientExample.ConverterStringCode(resultBuffer
    .toString(), get.getResponseCharSet(), encode);
    } catch (Exception e) {
    e.printStackTrace();
    result = "";
    } finally {
    get.releaseConnection();
    return result;
    }
    }
    public static String getPostResponseWithHttpClient(String url, String encode) {
    HttpClient client = new HttpClient(manager);
    if (initialed) {
    HttpClientExample.SetPara();
    }
    PostMethod post = new PostMethod(url);
    post.setFollowRedirects(false);
    StringBuffer resultBuffer = new StringBuffer();
    String result = null;
    try {
    client.executeMethod(post);
    BufferedReader in = new BufferedReader(new InputStreamReader(post
    .getResponseBodyAsStream(), post.getResponseCharSet()));
    String inputLine = null;
    while ((inputLine = in.readLine()) != null) {
    resultBuffer.append(inputLine);
    resultBuffer.append("\n");
    }
    in.close();
    // iso-8859-1 is the default reading encode
    result = HttpClientExample.ConverterStringCode(resultBuffer
    .toString(), post.getResponseCharSet(), encode);
    } catch (Exception e) {
    e.printStackTrace();
    result = "";
    } finally {
    post.releaseConnection();
    return result;
    }
    }
    public static String getPostResponseWithHttpClient(String url,
    String encode, NameValuePair[] nameValuePair) {
    HttpClient client = new HttpClient(manager);
    if (initialed) {
    HttpClientExample.SetPara();
    }
    PostMethod post = new PostMethod(url);
    post.setRequestBody(nameValuePair);
    post.setFollowRedirects(false);
    String result = null;
    StringBuffer resultBuffer = new StringBuffer();
    try {
    client.executeMethod(post);
    BufferedReader in = new BufferedReader(new InputStreamReader(post
    .getResponseBodyAsStream(), post.getResponseCharSet()));
    String inputLine = null;
    while ((inputLine = in.readLine()) != null) {
    resultBuffer.append(inputLine);
    resultBuffer.append("\n");
    }
    in.close();
    // iso-8859-1 is the default reading encode
    result = HttpClientExample.ConverterStringCode(resultBuffer
    .toString(), post.getResponseCharSet(), encode);
    } catch (Exception e) {
    e.printStackTrace();
    result = "";
    } finally {
    post.releaseConnection();
    return result;
    }
    }
    private static String ConverterStringCode(String source, String srcEncode,
    String destEncode) {
    if (source != null) {
    try {
    return new String(source.getBytes(srcEncode), destEncode);
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return "";
    }
    } else {
    return "";
    }
    }
    }


    之后,就可以通過下面的代碼獲得目標網頁:
    String source = HttpClientExample.getGetResponseWithHttpClient("http://www.163.com", "GBK");

    注意,在默認情況下,HttpClient的Request的Head中
    User-Agent的值是Jakarta Commons-HttpClient 3.0RC1,如果需要改變它(例如,變為Mozilla/4.0),必須在調用之前運行如下語句:
    System.getProperties().setProperty("httpclient.useragent", "Mozilla/4.0");
    zhuan:http://www.diybl.com/course/3_program/java/javajs/20090210/155102.html

    posted on 2009-04-28 09:28 找個美女做老婆 閱讀(4528) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    公告

    本blog已經搬到新家了, 新家:www.javaly.cn
     http://www.javaly.cn

    常用鏈接

    留言簿(6)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品国产_亚洲人成在线高清| 精品国产免费观看一区| 精品国产人成亚洲区| 美女的胸又黄又www网站免费| 精品剧情v国产在免费线观看 | 亚洲国产中文v高清在线观看| 亚洲人成电影网站色www| 毛片a级毛片免费观看免下载| 亚洲一区二区三区在线| 69av免费视频| 亚洲熟伦熟女专区hd高清| 成人免费视频一区| 亚洲heyzo专区无码综合| 国产高清在线免费视频| 人妻巨大乳hd免费看| 亚洲精品无码成人AAA片| 久久这里只精品99re免费| 亚洲精品福利网泷泽萝拉| 色窝窝免费一区二区三区| 亚洲精品无码av片| 亚洲无线一二三四区手机| 在线涩涩免费观看国产精品 | 午夜影院免费观看| 亚洲白色白色在线播放| 成人免费毛片内射美女APP| 亚洲1区2区3区精华液| 免费无遮挡无码永久在线观看视频| 阿v视频免费在线观看| 亚洲韩国精品无码一区二区三区| 无码精品国产一区二区三区免费 | 国产免费AV片无码永久免费| 老司机福利在线免费观看| 精品国产亚洲一区二区三区| 999在线视频精品免费播放观看| 亚洲日韩国产一区二区三区在线| 亚洲国产午夜福利在线播放| 日韩免费在线视频| 亚洲成在人线在线播放无码| 亚洲国产无套无码av电影| 曰批全过程免费视频在线观看| 精品成人一区二区三区免费视频|