2013-01-02 8 views
7

Próbuję ustawić abc = 123 cookie przed wysłaniem żądania http.Korzystanie z apache httpclient, jak ustawić plik cookie dla żądania http

W odpowiedzi oczekuję wysłania tego samego pliku cookie. Ale w odpowiedzi otrzymam abc = 890, gdzie wartość jest ustawiana przez serwer docelowy.

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

Dzięki

Odpowiedz

8

To działało po dodaniu

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

Czy problem został rozwiązany przez zmianę

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

do

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

?

Powiązane problemy