Android或者Java發送Http自動重發請求的解決方案


今天遇到奇葩問題,描述如下:

客戶端向服務端發起了一次(從日志中可以看出僅僅打印了一次日志),但是確在后端出現了重復的幾次請求數據在后端。這個問題很不容易出現,而且用中文搜索不到相應的結果;

 

 

今天在國外的網站中找到了問題的解決方案:

原因如下:由於設置了鏈接與獲取數據的超時時間,客戶端在發送數據之后,檢測到可能並沒有發送成功到后端,這個時候http底層會自動重發請求(注意是Http底層,所以應用端不會知道發送了多次請求)。如果應用端自動重發了多次請求,后端也回復了多次請求,但是前段僅僅會只回復1次請求。所以為了解決這個問題,只要在DefaultHttpClient設置如下代碼即可解決:

 

 

defaultHttpClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));

 


免責聲明!

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



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