2013-01-02 178 views
7

我試圖發送HTTP請求之前設置ABC = 123的cookie。使用Apache的HttpClient如何設置cookie中的HTTP請求

在回覆中,我期待將相同的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()); 
      } 
    } 

感謝

回答

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()); 

相關問題