2015-04-29 35 views
2

我發送兩個請求,我想用cookie(第一個請求的響應中的cookie)做第二個請求。如何在asyncHttpClient的請求之間保存cookie?

現在它是如何工作的:

Future<Response> f = asyncHttpClient 
    .prepareGet(URL_1) 
    .execute(); 
Response r = f.get(); 

/* I want code without saving and restoring cookie */ 
List<Cookie> cookies = r.getCookies(); 
AsyncHttpClient.BoundRequestBuilder b = asyncHttpClient.prepareGet(URL_2) 
for (Cookie c : cookies) { 
    b.addCookie(c); 
} 

f = b.execute(); 
r = f.get(); 

我想刪除複雜的代碼,我該怎麼辦呢

回答

0

如果使用Java8已,然後ComparableFuture可以幫助您請求的順序運行。否則,您可以找到有用的RxJava第三方(鏈接到RxJava在文章摘要中)。

+0

問題不在於代碼量,邏輯問題。 我想asynchttpClient保持cookie,如果他們迴應。 – couatl

+0

啊,好的。那麼你可以檢查這個鏈接:http://stackoverflow.com/questions/15668186/request-doesnt-used-saved-cookies-in-persistentcookiestore。 –

相關問題