使用Apache HttpClient如何为HTTP请求设置Cookie

7

我试图在发送http请求之前设置abc=123的cookie。

然后在响应中,我期望收到相同的cookie。但是实际响应中我收到的是abc=890,这个值是由目标服务器设置的。

        DefaultHttpClient httpclient = new DefaultHttpClient();
    CookieStore cookieStore = httpclient.getCookieStore();
    BasicClientCookie cookie = new BasicClientCookie("abc", "123");

    // Prepare a request object
    HttpGet httpget = new HttpGet("http://abc.net/restofurl");

    cookieStore.addCookie(cookie);
    httpclient.setCookieStore(cookieStore);

    // Execute the request
    HttpResponse response = httpclient.execute(httpget);

    // Examine the response status
    log.info("Http request response is: " + response.getStatusLine());

    List<Cookie> cookies = cookieStore.getCookies();

    for (int i=0; i<cookies.size();i++) {

        if (cookies.get(i).getName().toString().equals("abc")) {
            log.info("cookie is: " + cookies.get(0).getValue().toString());
            }
    }

谢谢

2个回答

8

添加后它可以正常工作了

cookie.setDomain(".xyz.net");
cookie.setPath("/");

0

通过更改解决了问题吗?

log.info("cookie is: " + cookies.get(0).getValue().toString());

进入

log.info("cookie is: " + cookies.get(i).getValue().toString());

?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接