resttemplate調用接口第一次成功,以后都失敗


使用spring boot resttemplate調用一個三方接口,每次都是程序啟動后只能調用成功一次,再次調用就會被三方接口返回302到登錄頁面。而用其它工具欄構建http請求卻沒有這個問題。一開始懷疑是host或是referer的問題,修改header中的host和referer,貌似沒起作用,這時候百度后發現沒有設置sun.net.http.allowRestrictedHeaders

 

System.setProperty("sun.net.http.allowRestrictedHeaders", "true");

 但是設置之后問題依舊.

這時候跟蹤代碼,發現三方返回的時候給了一個set-cookie,難道是這個問題導致的,於是在resttemplate的exchange之前,判斷cookie是不是有內容,但是返回結果為空。
沒辦法只能用抓包工具看看第一次請求和后續請求的不同了,使用wireshark,抓包后,發現后續請求比第一次多了一個cookie,這個cookie是三方接口在第一次調用后返回的。這說明resttemplate在調用的時候還是發送了cookie,只是這個cookie是在底層最后發送請求的時候才添加
再百度關鍵詞resttemplate 維持、保持會話,沒有相關問題的解決方法,百度關鍵詞httpclient 保持會話,倒是有,下面文章倒是提供了解決方向

httpclient妙用二 httpclient保持會話登錄》

百度是在查不到了,在手機上用今日頭條搜索關鍵詞resttemplate 自動保持會話,居然在簡書上有相關文章。
文章地址:https://www.jianshu.com/p/17885c1e1c79
還就是我要找的答案,按圖索驥,之后問題解決,

HttpClientBuilder.create().disableCookieManagement()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM