如何在Java中創建幾個HTTP請求來組成一個會話(因此,共享相同的一組cookie)等?如何使用同一個會話創建多個HTTP請求
我想通過POST請求在一個站點上授權,然後使用所有cookie和會話數據向本站點發出GET請求。
是否有可能呢?如果有幾種可能的方式來實現這種行爲,那麼他們最好的是什麼?在我的情況下,同步通話是可以的。
在此先感謝。
如何在Java中創建幾個HTTP請求來組成一個會話(因此,共享相同的一組cookie)等?如何使用同一個會話創建多個HTTP請求
我想通過POST請求在一個站點上授權,然後使用所有cookie和會話數據向本站點發出GET請求。
是否有可能呢?如果有幾種可能的方式來實現這種行爲,那麼他們最好的是什麼?在我的情況下,同步通話是可以的。
在此先感謝。
我會使用一個http客戶端爲你做這個。例如。 Apache的百科全書:
https://hc.apache.org/httpcomponents-client-ga/tutorial/html/statemgmt.html#d5e585
如果你還是想實現它自己,看看CookieHandler和CookieManager。基本上:
CookieHandler.setDefault(new CookieManager());
會做的伎倆。
有什麼辦法通過標準庫來做到嗎?其實我不想在這個項目中使用第三方庫僅用於HTTP請求 – FrozenHeart
當然,您可以。但是,相信我,遲早你需要共享,認證,緩存......並且通過使用第三方庫免費獲得所有這些。如果你想自己實現它,我已經編輯了答案。 – Ruben
@Ruben不,你不要*推薦那些已經死了多年的軟件! –
會話通常通過cookie進行跟蹤,所以您需要從初始響應中的Set-Cookie標頭中收集Cookie,然後在後續請求中將它們傳遞到Cookie標頭中。 – blm
@blm它是標準庫中的最佳解決方案嗎?我應該手動做還是有像「CookieManager」這樣的內置類,或者像這樣做? – FrozenHeart
對於小型項目,我只需使用標準的CookieManager,HttpCookie和Http [s] UrlConnection類。對於較大的項目,Apache有一些庫可以爲你處理大量的項目,但是標準的Java類非常好。 – blm