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

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

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

    ice world

    There is nothing too difficult if you put your heart into it.
    posts - 104, comments - 103, trackbacks - 0, articles - 0

    HttpClientUtils

    Posted on 2013-07-27 11:53 IceWee 閱讀(1440) 評論(0)  編輯  收藏 所屬分類: Java
    備用。
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.Reader;
    import java.util.ArrayList;
    import java.util.List;

    import org.apache.http.HttpEntity;
    import org.apache.http.HttpHost;
    import org.apache.http.HttpResponse;
    import org.apache.http.NameValuePair;
    import org.apache.http.client.entity.UrlEncodedFormEntity;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.conn.params.ConnRoutePNames;
    import org.apache.http.cookie.Cookie;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.protocol.HTTP;
    import org.apache.http.util.EntityUtils;

    /**
     * <p>
     * HTTP請求工具類
     * </p>
     * 
     * 
    @author IceWee
     * @date 2012-6-16
     * 
    @version 1.0
     
    */

    public class HttpClientUtils {
        
        
    private static final String NEXT_LINE = "\r\n";
        
    private static final String HEADER_USER_AGENT = "User-Agent"// 瀏覽器信息
        private static final String BROWSER_IE9 = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"// 模擬Win7 x64/IE9

        
    /**
         * <p>
         * 網站登錄(Post方式)
         * </p>
         * 
         * 
    @param url 登錄請求URL
         * 
    @param proxyHost 網絡代理主機
         * 
    @param proxyPort 網絡代理端口
         * 
    @param nvps POST參數列表
         * 
    @return 用戶會話信息
         
    */

        
    public static List<Cookie> loginPost(String url, String proxyHost, int proxyPort, List <NameValuePair> nvps) {
            List
    <Cookie> cookies = new ArrayList<Cookie>();
            DefaultHttpClient httpClient 
    = new DefaultHttpClient();
            
    try {
                
    if (proxyHost != null && !"".equals(proxyHost)) // 網絡代理
                    HttpHost proxy = new HttpHost(proxyHost, proxyPort);
                    httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
                }

                HttpPost httpPost 
    = new HttpPost(url);
                httpPost.setHeader(HEADER_USER_AGENT, BROWSER_IE9); 
    // 模擬瀏覽器
                httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
                httpClient.execute(httpPost);
                cookies 
    = httpClient.getCookieStore().getCookies();
            }
     catch (Exception e) {
                e.printStackTrace();
            }
     finally {
                httpClient.getConnectionManager().shutdown();
            }

            
    return cookies;
        }

        
        
    /**
         * 網站登錄(Get方式)
         * 
         * 
    @param url 登錄URL
         * 
    @param encode 網站頁面編碼
         * 
    @param proxyHost 網絡代理主機
         * 
    @param proxyPort 網絡代理端口
         * 
    @return Cookie
         
    */

        
    public static List<Cookie> loginGet(String url, String encode, String proxyHost, int proxyPort) {
            List
    <Cookie> cookies = null;
            DefaultHttpClient httpClient 
    = new DefaultHttpClient();
            
    try {
                
    if (proxyHost != null && !"".equals(proxyHost)) // 網絡代理
                    HttpHost proxy = new HttpHost(proxyHost, proxyPort);
                    httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
                }

                HttpGet httpGet 
    = new HttpGet(url);
                httpGet.setHeader(HEADER_USER_AGENT, BROWSER_IE9); 
    // 模擬瀏覽器
                HttpResponse response = httpClient.execute(httpGet);
                
    boolean succeed = getLoginResult(response, encode);
                
    if (succeed) {
                    cookies 
    = httpClient.getCookieStore().getCookies();
                }
     else {
                    cookies 
    = null;
                }

            }
     catch (Exception e) {
                e.printStackTrace();
                cookies 
    = null;
            }
     finally {
                httpClient.getConnectionManager().shutdown();
            }

            
    return cookies;
        }

        
        
    /**
         * <p>
         * 網站注銷(Get方式)
         * </p>
         * 
         * 
    @param url 注銷請求URL
         * 
    @param proxyHost 網絡代理主機
         * 
    @param proxyPort 網絡代理端口
         * 
    @param cookies 用戶會話信息
         
    */

        
    public static void logout(String url, String proxyHost, int proxyPort, List<Cookie> cookies) {
            DefaultHttpClient httpClient 
    = new DefaultHttpClient();
            
    try {
                sendCookie(httpClient, cookies);
                
    if (proxyHost != null && !"".equals(proxyHost)) // 網絡代理
                    HttpHost proxy = new HttpHost(proxyHost, proxyPort);
                    httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
                }

                HttpGet httpGet 
    = new HttpGet(url);
                httpGet.setHeader(HEADER_USER_AGENT, BROWSER_IE9); 
    // 模擬瀏覽器
                httpClient.execute(httpGet);
            }
     catch (Exception e) {
                e.printStackTrace();
            }
     finally {
                httpClient.getConnectionManager().shutdown();
            }

        }

        
        
    /**
         * <p>
         * POST請求網址
         * </p>
         * 
         * 
    @param url 請求URL
         * 
    @param proxyHost 網絡代理主機
         * 
    @param proxyPort 網絡代理端口
         * 
    @param encode 網站編碼
         * 
    @param nvps 請求參數列表
         * 
    @param cookies 用戶會話信息
         * 
    @return 網站源碼
         
    */

        
    public static String sendPostRequest(String url, String proxyHost, int proxyPort, String encode, List <NameValuePair> nvps, List<Cookie> cookies) {
            String responseText 
    = "";
            DefaultHttpClient httpClient 
    = new DefaultHttpClient();
            
    try {
                sendCookie(httpClient, cookies); 
    // 發送Cookie
                if (proxyHost != null && !"".equals(proxyHost)) // 網絡代理
                    HttpHost proxy = new HttpHost(proxyHost, proxyPort);
                    httpClient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
                }

                HttpPost httpPost 
    = new HttpPost(url);
                httpPost.setHeader(HEADER_USER_AGENT, BROWSER_IE9); 
    // 模擬瀏覽器
                httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
                HttpResponse response 
    = httpClient.execute(httpPost);
                HttpEntity entity 
    = response.getEntity();
                responseText 
    = getResponse(entity, encode); // 獲取返回頁面源碼
                EntityUtils.consume(entity);
            }
     catch (Exception e) {
                e.printStackTrace();
            }
     finally {
                httpClient.getConnectionManager().shutdown();
            }

            
    return responseText;
        }

        
        
    /**
         * <p>
         * 解析返回流生成文本
         * </p>
         * 
         * 
    @param entity
         * 
    @param encode
         * 
    @return
         * 
    @throws IOException
         
    */

        
    private static String getResponse(HttpEntity entity, String encode) throws IOException {
            StringBuffer buffer 
    = new StringBuffer();
            InputStream in 
    = entity.getContent();
            Reader reader 
    = new InputStreamReader(in, encode);
            BufferedReader bufferedReader 
    = new BufferedReader(reader);
            String line;
            
    while ((line = bufferedReader.readLine()) != null{
                line 
    = new String(line.getBytes());
                buffer.append(line).append(NEXT_LINE);
            }

            bufferedReader.close();
            reader.close();
            
    return buffer.toString();
        }

        
        
    /**
         * <p>
         * 發送Cookie
         * </p>
         * 
         * 
    @param httpClient
         * 
    @param cookies
         
    */

        
    private static void sendCookie(DefaultHttpClient httpClient, List<Cookie> cookies) {
            
    if (cookies != null{
                
    for (Cookie cookie : cookies) {
                    httpClient.getCookieStore().addCookie(cookie);
                }

            }

        }

        
        
    /**
         * <p>
         * 解析出登錄結果,北大法寶登錄成功失敗分別返回如下信息:<br>
         * 成功:p_LoginUser = "elsevier";dispResult('');<br>
         * 失敗:p_AlertInfo = "對不起,您的賬號在“法律法規”庫在線人數已經超過最大允許范圍!如有任何疑問請致電400-810-8266轉117";dispResult('');
         * </p>
         * 
         * 
    @param response
         * 
    @param encode
         * 
    @return
         * 
    @throws IOException
         
    */

        
    private static boolean getLoginResult(HttpResponse response, String encode) throws IOException {
            
    boolean result = false;
            HttpEntity entity 
    = response.getEntity();
            String responseText 
    = getResponse(entity, encode);
            EntityUtils.consume(entity);
            
    if (responseText != null{
                
    if (responseText.contains("p_LoginUser")) {
                    result 
    = true;
                }
     else if (responseText.contains("p_AlertInfo")) {
                    result 
    = false;
                }

            }
     else {
                result 
    = false;
            }

            
    return result;
        }

        
    }


    主站蜘蛛池模板: 亚欧色视频在线观看免费| 91在线视频免费播放| 亚洲人成在线播放网站| 69影院毛片免费观看视频在线 | 婷婷亚洲久悠悠色悠在线播放| 又大又硬又爽又粗又快的视频免费| 456亚洲人成在线播放网站| 亚洲综合小说久久另类区| A级毛片成人网站免费看| 91精品国产亚洲爽啪在线影院| 18禁无遮挡无码网站免费| 97国免费在线视频| 亚洲综合色婷婷在线观看| 亚洲AV无码一区二区二三区软件| 无码高潮少妇毛多水多水免费| 黄色网页在线免费观看| 亚洲日本一线产区和二线| 亚洲av鲁丝一区二区三区| 亚洲AⅤ视频一区二区三区 | 国产成人高清精品免费鸭子| 午夜视频在线免费观看| 特级毛片A级毛片100免费播放| 亚洲成A∨人片在线观看无码| 亚洲日本一区二区一本一道| 久久精品无码一区二区三区免费| 成全视频在线观看免费| 久久久亚洲欧洲日产国码二区| 免费一级做a爰片性色毛片| 国产福利视精品永久免费| 两个人看的www免费| 深夜A级毛片视频免费| 亚洲视频无码高清在线| 久久精品国产亚洲AV高清热| 亚洲午夜久久久久妓女影院| 又大又黄又粗又爽的免费视频| 久久久高清免费视频| 16女性下面无遮挡免费| 久9久9精品免费观看| 国产一级在线免费观看| 无人视频在线观看免费播放影院 | 久久久久av无码免费网|