HTTP連接池調用微信接口:443 failed to respond


一、調用微信接口時,經常出現錯誤:

java.lang.RuntimeException: org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respond

接口:https://api.weixin.qq.com/sns/jscode2session

 

二、原因:

1. 微信服務端的http keepalive時長是20s

2. 使用一個連接發送http請求完成后,假設下次使用這個連接是在20s之后,微信端其實已經拋棄了這個連接

3. 如果繼續使用這個連接發送請求,就會報443的錯誤,微信服務端主動拋棄鏈接

 

三、解決

1. HTTP客戶端連接設置超時時間(socketTimeout),不超過20s,例如15s

2. 檢查空閑連接的機制setValidateAfterInactivity,也設置成15s

3. 清理過期連接的時間evictIdleConnections,也設置成15s

4. 加上重試機制setRetryStrategy

 

 

參考:

https://juejin.cn/post/6865277186438496269

 


免責聲明!

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



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