本帖最后由 fengziba 于 2010-02-01 15:46:25 编辑

解决方案 »

  1.   

    浏览器第一次访问时服务器会返回两个set-cookie值,第二次浏览器把这两个cookie拼成一个发给服务器
    而使用httpclient的如下代码却不行
    hc.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
    CookiePolicy.BROWSER_COMPATIBILITY换成别的常量也不行。好像是cookie有很多标准,比如rfc,比如Netscape...
    默认的httpclient把两个set-cookie值作为两个cookie发给服务器,结果没有数据Cookie   xxx=yyy; id=**** 这是浏览器发送的cookieCookie   xxx=yyy
    Cookie   id=****   这两个是httpclient发的cookie所以只好自己写个方法
                                    //第一次get方法获得cookie
                    hc.executeMethod(get);    
                                    //设置cookie
                        Cookie [] cookies = hc.getState().getCookies();
                        if(cookies !=null && cookies.length>0){                        String cook=cookies[0].getValue();
                            for (int i = 1; i < cookies.length; i++) {
                                cook += "; " + cookies[i].getName() + "=" + cookies[i].getValue();
                            }                        cookies[0].setValue(cook);
                            HttpState state = new HttpState();
                            state.addCookie(cookies[0]);
                            hc.setState(state);
                        }                
                    //第二次post方法取得数据
                    hc.executeMethod(post);
      

  2.   

    参考:
    http://school.itzcn.com/special-spid-50.html
    上面讲解的比较详细,希望对楼主有所帮助。
      

  3.   

    2L 最主要是 我根本第一次就拿不到cookie里的值