OkHttp框架的一個Http500問題解決
一、問題描述:
使用OKHttp框架進行網路請求,測試線採用http,正式線採用https,測試線請求200通過,但是正式線卻發生500異常。
二、解決方法:
1、首先定位在https請求的問題
2、通常http500的問題定位請求頭的問題
3、檢查程式碼,發現OkHttp配置程式碼中並沒有配置請求頭
4、用fiddler抓包,檢視header,發現唯一不同的是User-Agent
5、採用https請求的時候OKHttp會配置一個預設的User-Agent[okhttp/3.9.0]
[21/Aug/2018:14:32:16 +0800] "POST /index/index HTTP/1.1" 500 186 "-" "okhttp/3.9.0"
6、替換正確的User-Agent,測試通過。
RequestBody body = RequestBody.create(MediaType.parse("application/x-www-form-urlencoded; charset=UTF-8"), sb.toString());
request = request.newBuilder().post(body).removeHeader("User-Agent").addHeader("User-Agent",getUserAgent()).build();
[21/Aug/2018:14:40:13 +0800] "POST /index/getVersionInfo HTTP/1.1" 200 32 "-" "Dalvik/1.6.0 (Linux; U; Android 4.3; Lenovo A890e Build/JLS36C)"
private static String getUserAgent () {
String userAgent = "";
StringBuffer sb = new StringBuffer();
userAgent = System.getProperty("http.agent");//Dalvik/2.1.0 (Linux; U; Android 6.0.1; vivo X9L Build/MMB29M)
for (int i = 0, length = userAgent.length(); i < length; i++) {
char c = userAgent.charAt(i);
if (c <= '\u001f' || c >= '\u007f') {
sb.append(String.format("\\u%04x", (int) c)); } else { sb.append(c); }
}
LogUtils.tag("xxx").e("User-Agent","User-Agent: "+ sb.toString());
return sb.toString();
}
相關文章
- 解決github中一個新手著名問題Github
- AWS AutoScaling的一個ScaleDown策略問題以及解決方法
- 用Python解決一個等差數列的求和問題Python
- 記錄一個 gitlab 登入問題解決Gitlab
- 一個案例,教你巧用DMAIC解決“大問題”!AI
- 對抗式協作:一個框架解決多個無監督學習視覺問題框架視覺
- 一個簡單的統計問題(解決方案:Trie樹)
- 關於解決問題的幾個段位
- 遊戲,一個有樂趣的、解決問題的過程遊戲
- 一個關於JS解決陣列相乘問題JS陣列
- python bottle框架 解決跨域問題的正確方式Python框架跨域
- Glide+OkHttp訪問IPv6出錯的解決方案IDEHTTP
- Python的Selenium一些問題解決Python
- 請問一下這個問題怎麼解決,這是剛開始搭建的介面自動化測試框架框架
- 解決 Unexpectedlexicaldeclarationincaseblock的問題BloC
- 一個ssh無法遠端登入的問題跟蹤解決
- 一個VNPY 的“CTP:平昨倉位不足”問題的解決記錄
- 100多次競賽後,他研發了一個幾乎可以解決所有機器學習問題的框架機器學習框架
- 記錄一次解決App崩潰問題的解決方案APP
- 解決 github 訪問不了的問題Github
- 解決github訪問慢的問題Github
- display:flex解決的問題Flex
- 遇到問題的解決方法
- 解決一個C#中定時任務被阻塞問題C#
- 用PriorityQueue解決選擇最小的K個數問題
- 6個問題解決產品銷量的痛點
- 解決go-micro與其它gRPC框架之間的通訊問題GoRPC框架
- 記一次 Composer 問題的解決過程!!
- mysql8.0插入慢的問題解決方案(一)MySql
- Go的http庫處理multipart的兩個問題解決GoHTTP
- 4次等冪和最少項至今還未解決的一個問題
- 關於 SAP ABAP gateway OData 的一個詭異問題及解決辦法Gateway
- 若依框架匯入阿里OSS報錯問題解決方案框架阿里
- 一次 nginx 返回 302 問題解決Nginx
- 解決JS跨域訪問的問題JS跨域
- 請問一個 authorize的問題
- but no encoding declared;問題的解決方法Encoding
- 01揹包問題的解決