HttpClient解決項目調用之間Connection reset的問題


前幾天項目中調用其他項目會時不時的報Connection Rest,然后找了各種方法都解決不了。被調用方查詢日志以后發現每次報Connection Rest時被調用方都未收到請求。
在這里插入圖片描述
查詢了一些資料才發現,Nginx對服務端使用的是長連接,對客戶端使用的是短連接,而我們項目使用的是HttpPost ,HttpPost 默認是長連接。那么就很顯而易見了,我方調用數據提供方使用了長連接,而被調用方的nginx對我方使用的是短連接,被調用方接受請求以后立馬斷掉了,我方還在繼續等待結果就產生了Connection Rest。
因此,在httpclient請求時在請求頭設置為短連接即可:

HttpPost httpPost = new HttpPost(url);
httpPost.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE);

   
   
  
  
          
  
  
 
 
         
  • 1
  • 2

修改以后經驗證請求正常不再報錯。。。


免責聲明!

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



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