小程序 wx.uploadFile 上傳文件 iOS 失敗 400 錯誤排查


問題背景

iOS 13 下上傳文件,經常性第一次 400,第二次才成功。

 

初步排查

經檢查,400 時還沒有到后台服務,屬於 nginx 層直接返回。

 

獲得線索

Google 后得到線索:

iOS 13 對 TLS 要求更嚴格,所以如果 web server 不滿足可能會造成偶發請求失敗。具體可參見:https://stackoverflow.com/questions/58011737/ios-13-tls-issue

 

環境對比

同時由於我們是預發布環境沒有問題,測試環境有問題,所以排查了預發布和測試的 web server 配置,可以使用檢測網站:https://www.ssllabs.com/ssltest/index.html

檢測出預發布環境和測試環境都支持 TLS1.2,針對 Safari 的檢測結果為 預發布環境是 TLS 1.2>http/1.1,測試環境為 TLS 1.2 > h2 

 

所以懷疑是 iOS 在 http2 下的問題,最后測試環境改為 http/1.1 后,問題解決

 

最后結論

如果有類似問題可以從以下幾個方面排查

1. 如果 web server(如 nginx)不支持 TLS 1.2,可以更改配置后驗證

2. 如果已支持 TLS 1.2,可以檢查是否啟用了 HTTP/2,可以關閉后驗證


免責聲明!

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



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