HttpClient 对 cookie 的处理

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

public static void main(String[] args) {
        HttpClient client = new HttpClient();
        NameValuePair[] nameValuePairs = {
                new NameValuePair("username", "aaa"),
                new NameValuePair("passwd", "123456")
        };
        PostMethod postMethod = new PostMethod("登录url");
        postMethod.setRequestBody(nameValuePairs);
        int stats = 0;
        try {
            stats = client.executeMethod(postMethod);
        } catch (HttpException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        postMethod.releaseConnection();//这里最好把之前的资源放掉
        CookieSpec cookiespec = CookiePolicy.getDefaultSpec();
        Cookie[] cookies = cookiespec.match("域名", 80/*端口*/, "/" , false , client.getState().getCookies());
        for (Cookie cookie : cookies) {
            System.out.println(cookie.getName() + "##" + cookie.getValue());
        }
         
        HttpMethod method = null;
        String encode = "utf-8";//页面编码,按访问页面改动
        String referer = "http://域名";//http://www.163.com
        method = new GetMethod("url2");//后续操作
        method.getParams().setParameter("http.useragent","Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)");
        method.setRequestHeader("Referer", referer);
 
        client.getParams().setContentCharset(encode);
        client.getParams().setSoTimeout(300000);
        client.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(10, true));
   
        try {
            stats = client.executeMethod(method);
        } catch (HttpException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (stats == HttpStatus.SC_OK) {
            System.out.println("提交成功!");
             
        }
    }