<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)

    隨筆檔案

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产国产人免费视频成69堂| 99久热只有精品视频免费观看17| 色视频色露露永久免费观看| 亚洲欧洲日产国码二区首页 | 暖暖免费中文在线日本| 日韩在线a视频免费播放| 欧美色欧美亚洲另类二区| 国产精品国产免费无码专区不卡 | a级成人免费毛片完整版| 亚洲色精品aⅴ一区区三区| 香蕉免费看一区二区三区| 在线观看午夜亚洲一区| 日本一卡精品视频免费 | 亚洲日韩乱码中文无码蜜桃臀| 精品久久8x国产免费观看| 亚洲人成www在线播放| 国产免费直播在线观看视频| 无码免费又爽又高潮喷水的视频| 亚洲精品无码鲁网中文电影| 久久w5ww成w人免费| 亚洲熟妇无码AV| 久久影院亚洲一区| 久久99国产乱子伦精品免费| 亚洲偷自拍另类图片二区| 亚洲午夜福利精品无码| 国产精品99久久免费观看| 中文字幕亚洲男人的天堂网络| 亚洲高清无码在线观看| 久久久久国色av免费看| 国产人成亚洲第一网站在线播放| 亚洲成av人片天堂网老年人| 91青青国产在线观看免费| 亚洲精华国产精华精华液网站| 在线精品亚洲一区二区小说| 黄色永久免费网站| 免费无遮挡无遮羞在线看| 亚洲精品在线电影| 亚洲av无码天堂一区二区三区| 最近中文字幕大全免费视频| 国产亚洲女在线线精品| 亚洲精品免费在线|