HttpClients 如何自動處理重定向

2021-07-09 07:47:57 字數 1537 閱讀 3671



首先說說httpclient和瀏覽器的區別

我們從瀏覽器發起一筆請求,瀏覽器則會幫你處理重定向、快取等事情。這也就是為什麼用瀏覽器表單post提交後,不管服務端如何重定向,都能正常接收到服務端返回的資料。

但是用httpclient呢,你會發現,請求後,會返回302,因為post方式提交httpclient是不會幫你處理重定向的。這時候怎麼辦呢?

方法一:(自己手動處理)

system.out.println("statuscode=="+statuscode); //返回碼

header header=response.getfirstheader("location");

//重定向位址

string location =  header.getvalue();

system.out.println(location);

//然後再對新的location發起請求即可

system.out.println("返回報文"+entityutils.tostring(response2.getentity(), "ut-f-8"));

方法二:(已有工具類)

.disableautomaticretries() //關閉自動處理重定向

.setredirectstrategy(new laxredirectstrategy());//利用laxredirectstrategy處理post重定向問題

system.out.println("statuscode=="+statuscode); //返回碼

system.out.println("返回報文"+entityutils.tostring(response.getentity(), "ut-f-8"));

HttpClients 如何自動處理重定向

httpclient只是模擬一次tcp請求,瀏覽器則會幫你處理重定向 快取等事情。這也就是為什麼用瀏覽器表單post提交後,不管服務端如何重定向,都能正常接收到服務端返回的資料。但是用httpclient呢,你會發現,請求後,會返回302,因為post方式提交httpclient是不會幫你處理重定向...

如何自動發布MSSQLSERVER?

程式編寫 陳林茂 編寫日期 2003 01 01 當您的mis系統開發好以後,您如何盡快的分發您的資料庫呢?下面我將提供vb 的具體實現 optionexplicit definethesqlconnect dimosqlserverassqldmo.sqlserver dimocurrentdba...

spark streaming 如何自動停止

眾所周知spark streaming是7 24小時實時執行的程式。但是如果業務場景就是某天的某個時間段需要使用呢?時間點時長不固定。這個時候就需要我們 邏輯上啟動與停止spark streaming程式了。對於spark streaming 程式,我們通常是用shell指令碼進行啟動,而指令碼的呼...