<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 閱讀(1438) 評論(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>
         * 網(wǎng)站登錄(Post方式)
         * </p>
         * 
         * 
    @param url 登錄請求URL
         * 
    @param proxyHost 網(wǎng)絡(luò)代理主機
         * 
    @param proxyPort 網(wǎng)絡(luò)代理端口
         * 
    @param nvps POST參數(shù)列表
         * 
    @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)) // 網(wǎng)絡(luò)代理
                    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;
        }

        
        
    /**
         * 網(wǎng)站登錄(Get方式)
         * 
         * 
    @param url 登錄URL
         * 
    @param encode 網(wǎng)站頁面編碼
         * 
    @param proxyHost 網(wǎng)絡(luò)代理主機
         * 
    @param proxyPort 網(wǎng)絡(luò)代理端口
         * 
    @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)) // 網(wǎng)絡(luò)代理
                    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>
         * 網(wǎng)站注銷(Get方式)
         * </p>
         * 
         * 
    @param url 注銷請求URL
         * 
    @param proxyHost 網(wǎng)絡(luò)代理主機
         * 
    @param proxyPort 網(wǎng)絡(luò)代理端口
         * 
    @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)) // 網(wǎng)絡(luò)代理
                    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請求網(wǎng)址
         * </p>
         * 
         * 
    @param url 請求URL
         * 
    @param proxyHost 網(wǎng)絡(luò)代理主機
         * 
    @param proxyPort 網(wǎng)絡(luò)代理端口
         * 
    @param encode 網(wǎng)站編碼
         * 
    @param nvps 請求參數(shù)列表
         * 
    @param cookies 用戶會話信息
         * 
    @return 網(wǎng)站源碼
         
    */

        
    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); 
    // 發(fā)送Cookie
                if (proxyHost != null && !"".equals(proxyHost)) // 網(wǎng)絡(luò)代理
                    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>
         * 發(fā)送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>
         * 解析出登錄結(jié)果,北大法寶登錄成功失敗分別返回如下信息:<br>
         * 成功:p_LoginUser = "elsevier";dispResult('');<br>
         * 失敗:p_AlertInfo = "對不起,您的賬號在“法律法規(guī)”庫在線人數(shù)已經(jīng)超過最大允許范圍!如有任何疑問請致電400-810-8266轉(zhuǎn)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;
        }

        
    }


    主站蜘蛛池模板: 亚洲免费人成视频观看| 粉色视频免费入口| 亚洲色偷偷av男人的天堂| 亚洲日韩精品射精日| 亚洲国产美女精品久久久久∴| 天天拍拍天天爽免费视频| 国产成在线观看免费视频| 一本无码人妻在中文字幕免费| 免费观看男人吊女人视频| 光棍天堂免费手机观看在线观看| 一级做a爱片特黄在线观看免费看| 国产精品自拍亚洲| 免费视频成人国产精品网站| 无人视频免费观看免费视频| 四虎影视在线看免费观看| 一级毛片免费不卡| 美女巨胸喷奶水视频www免费| 日韩精品视频在线观看免费| 国产免费区在线观看十分钟| 成全视成人免费观看在线看| A级毛片高清免费视频在线播放| 两个人日本WWW免费版 | 国产精品国产午夜免费福利看| 日韩免费a级毛片无码a∨ | 91精品全国免费观看青青| 国产午夜精品理论片免费观看| A国产一区二区免费入口| 久久国产精品免费观看| 久久国产精品成人片免费| 我们的2018在线观看免费高清 | 亚洲a无码综合a国产av中文| 国产精品自拍亚洲| a级成人毛片免费视频高清| 最好看的中文字幕2019免费| 国产精品久久久久免费a∨| 精品免费国产一区二区| 亚洲国产免费综合| 国产AV无码专区亚洲A∨毛片| 色播亚洲视频在线观看| 中文字幕在线观看亚洲日韩| 日韩一级片免费观看|