問題現象
同一請求代碼,在網絡 A 成功,網絡 B 失敗(無響應/超時/數據異常)。
排查框架:四層定位法
- 發送端:抓包確認請求是否真正發出(
tcpdump/Wireshark/手機抓包 APP)。
- 網絡傳輸:對比兩網絡的 DNS、防火牆、代理、攔截策略、MTU、IPv6 支持。
- 服務端接收:服務端日誌確認是否收到請求、參數解析是否正確。
- 響應返回:服務端是否回包、回包是否被攔截/截斷、客戶端解碼是否報錯。
常見差異點
- 企業網/校園網攔截非標準端口或特定協議。
- DNS 劫持導致域名解析到錯誤 IP。
- 透明代理修改 HTTP 頭(如去除
Accept-Encoding 導致解壓失敗)。
- IPv6 優先但服務端僅監聽 IPv4。
代碼層面自查
- 設置合理超時(
connectTimeout/readTimeout)。
- 啟用 HTTPS 防止中間人篡改。
- 統一請求/響應編碼(UTF-8),避免隱式編碼轉換。
- 添加詳細網絡日誌(OkHttp
HttpLoggingInterceptor)。