關於華為手機移動4G無法聯網的問題
背景:在開發應用的時候,出現了一個奇怪的現象,就是華為的部分機型,在移動4G CMNET的情況下,無法連線網路,經過對於這個問題的研究和解決,才引發了這篇部落格的思考與學習,在這裡與大家分享。
測試case:(華為meta 8,meta 7,P8,P9的6.0機器才有這個問題)
移動4G(CMNET) |
移動4G(CMWAP) |
電信 |
聯通 |
WiFi |
|
我們應用的域名A |
✖ |
✓ |
✓ |
✓ |
✓ |
我們應用的其他域名 |
✓ |
✓ |
✓ |
✓ |
✓ |
(還有一個case就是 上海的移動4G可以,但是北京和天津的不可以)
各位看了上面的case,第一反應應該就是移動執行商或者是我們自己域名的伺服器的問題。
問題出現了,伺服器是收到了我們的請求,並且也是已經返回訊息的,但是客戶端就是一隻timeout。
綜合上面的分析,
我想到的
第一個想法就是抓去tcp ip包進行分析,結果此路不通。(原因是復現的機器都是6.0的,而且根本就root不了)
第二個想法就是能否通過代理抓包,結果是移動卡復現,沒有root,這條路也不行。
就在山窮水盡的時候,我和另一位同事,同時通過自己寫demo進行客戶端網路請求,結果他的是可以的,我寫的demo就不可以。
於是乎我覺得和客戶端寫的程式碼邏輯有關。
我就將所有的網路請求框架每個寫一個demo,這種東西網路一找一大堆,隨便找了一個改一下,就可以用了,基本上沒有什麼時間消耗。
測試結果如下:
URLConnection |
java.net.ProtocolException: unexpected end of stream |
HttpURLConnection |
java.net.ProtocolException: unexpected end of stream |
HttpClient |
ok |
volley |
TimeOut |
AbstractHttpClient/DefaultHttpClient |
TimeOut |
OkHttpClient |
Ok |
這樣感覺有點頭目了,大不了,將我們之前用的volley網路框架完全改為另外兩種可以執行的網路框架就ok了,但是這種代價貌似有點大啊,
我們先有一種最小的改動解決問題的方案,
這是就需要擷取包,進行對比了,雖然行動網路下不行,但是wifi和移動我們發出的請求肯定都是相同的。
抓去結果如下:
使用OKHttp截包效果如下:
使用volley截包效果如下:
經過與另外幾種訪問網路請求對比之後,發現可以的請求,使用的都是自己的User-Agent,不能訪問網路的請求的Agent都是使用華為的Agent,
所以我懷疑和Agent有關,所以將volley的包的User-Agent修改為其他的Agent
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = super.getHeaders();
if(headers.size() == 0){
<span style="white-space:pre"> </span>headers = new HashMap<>();
<span style="white-space:pre"> </span>headers.put("User-Agent", "okhttp/2.5.0");
}
return headers;
}
結果就可以了,真是突入其來的驚喜。
好了,結局方案有了,最起碼是可以解決的。
下面還需要繼續來分析為什麼?
因為的理解這個agent是統計誰請求的,是瀏覽器,還是某個客戶端,理論上應該沒有影響啊,所以我們需要伺服器端的幫助。
結果分析,發現,伺服器端如果直接訪問ip就是可以使用的,而且及時訪問域名,也是有一定概率可以使用的。只是timeout的時間需要設定的很大,
所以覺得可能和伺服器的某些機器有關係,本來打算在伺服器端抓包來處理的,但是一指定到某個機器的ip的時候,就可以使用了,又斷線了,
考慮到兩方面因素:1.客戶端可以修復了,而且熱補丁可以快速的解決問題
2.這個事情的排查太耗時了,專案還比較緊張,
所以就沒有繼續往下跟蹤分析。
這個等有時間,我還會繼續查詢相關資料來分析問題的根本原因。
目前就只能這樣了,
這裡貢獻一下我的多種網路請求訪問的demo:https://github.com/xiepengchong/NetworkDemo
我也是在網上查詢,修改獲取的,取之於網,饋之予網。
相關推薦
關於華為手機移動4G無法聯網的問題
背景:在開發應用的時候,出現了一個奇怪的現象,就是華為的部分機型,在移動4G CMNET的情況下,無法連線網路,經過對於這個問題的研究和解決,才引發了這篇部落格的思考與學習,在這裡與大家分享。 測試case:(華為meta 8,meta 7,P8,P9的6.0機器才有這個
mui 頁面無法下滑拖拽 主要體現在華為手機瀏覽器
調試 htm 沒有 無法 blog nbsp 手機瀏覽器 一個 原因 項目做到中期遇到一個問題,華為手機有些頁面顯示不全且無法下滑。 因為之前一直用的Google瀏覽器的模擬模式進行開發和調試的,一直未發現這個問題。 剛開始 選用mui的下拉刷新上拉加載的方式來進行
解決華為手機無法輸出Debug級別log的問題
進入 bsp name net 我們 人員 android開發 輸入 識別 近期購入了新款的華為手機榮耀8,手感、性能、顏值都非常好。作為android開發工程師,自然會用到真機進行日常的調試。然而,這部手機並沒有這麽“聽話“!反復嘗試開啟開發者選項中的設置項,依舊無法輸出
【華為手機】無法識別的排查方法
來源:美亞柏科服務之星(ID:my-support)作者:黃幼娜、吳曉南隨著智慧手機的快速普及,
移動端h5開發,華為手機輸入法鍵盤影響頁面佈局的問題。
在做移動端h5的時候,有些簡單的頁面,我們一般都會給body寫上: width:100%; height:100%; 然後給一個滿屏的背景圖,簡單方便的適應不同螢幕的手機。 有時候為了採集使用者資訊,頁面上會放置幾個input框讓使用者填寫,那麼問
開發中 華為手機無法 直接 進入相簿獲取圖片解決方案
開發中碰到無法直接進入相簿的情況,會彈出選擇介面,而需求是要直接從相簿獲取圖片public void localImage(int code) {Intent intent;if (Build.VERSION.SDK_INT < 19) {intent = new I
華為手機無法安裝apk
人間有真情,人間有真愛。 今天在華為手機上執行專案,直接報錯,在聯想手機沒問題 報的錯為: Exception while inflating <vector> org.xmlpull.v1.XmlPullParserException: Binary XML
華為手機指定android:installLocation為preferExternal後遊戲無法安裝
android:installLocation可以為auto internalOnly preferExternal。預設為internalOnly。 在Unity中這個值可以在Player Settings裡面進行設定。設定為preferExternal後,華為手機A
Android開發之華為手機無法看log日誌解決方法(親測可用華為榮耀6)
華為榮耀的測試機,發現在Android Studio下無法檢視log日誌,看不了日誌就不方便解決問題了。 解決方法: 進入手機撥號介面輸入:*#*#2846579#*#*依次選擇ProjectMenu—後臺設定—-LOG設定—LOG開關 點選開啟, 點LOG級別選V
移動端 華為手機 input中placeholder垂直居中失效
為一個app寫了一個巢狀的提現頁面,效果如下圖 input給定寬高,給了line-heigh,在瀏覽器檢視效果正常,placeholder內容以及游標顯示都是垂直居中的, IOS顯示正常, Andr
AndroidStudio_華為手機無法輸出日誌資訊
** 公司新入的測試機到了,到我手的有一華為P9的手機,在除錯工程中無法輸出Log.v(); Log.d()等日誌除錯資訊 經過查詢華為論壇,解決了該問題 解決步驟如下 ** 1. 在撥號介面,輸入:米#米#2846579#米#米進入工程選單
測評:華為最新移動應用/APP測試工具MobileTest
根據 將在 exce 黑邊 測試工具 導致 效率 顯示 get 一、目前移動應用/App的測試痛點及可選方案 移動互聯網市場進入下半場,同質化競爭激烈,平均獲客成本增加。屏幕不適配、閃退、無響應、UI異常等兼容性問題嚴重影響用戶體驗,影響用戶轉化率和用戶粘性。如何解決這些問
華為手機成本構成
nbsp jpg htm image src http blog com .cn http://laoyaoba.com/ss6/html/32/n-643632.html 華為手機成本構成
怎樣快速找回華為手機QQ表情包
怎樣快速找回華為手機QQ表情包 現在我們與朋友之間的交流,都是利用智能手機上的微信,QQ等,而且交流的話,也越來越少了,逐漸的用表情包,照片來代替,那些表情包中,有著我們不可述說的話語,那種詼諧的氣氛,使得我們把不好意思說的話,也放在那些照片中表達了出來。有的可愛,有的搞笑,我們都想給他保存
華為手機通訊錄沒了怎麽恢復
華為 手機 通訊錄 怎麽恢復華為手機通訊錄?手機通訊錄丟失了應該如何恢復,手機丟失了通訊錄聯系人應該如何恢復呢?許多時候因為各種各樣的原因我們會丟失手機重要的通訊錄聯系人,對於現在這個時刻追求高節奏,高效率的生活狀態,我們怎麽可以丟失通訊錄呢。 有一款軟件叫互盾手機數據恢復軟件的是專業針對收據的數據
HwPointEventFilter: do not support AFT because of no config華為手機進入工程菜單
event filter conf 點擊 color body gpo pan nbsp 在調試時應用報出HwPointEventFilter: do not support AFT because of no config 是因為華為系統裏設置了不打印log 解決方法是在
華為手機大變?余承東被傳離職轉崗,進軍美國受阻惹的禍?
雲服務 頻率 人員 消費 是你 研究 批評 華為手機 相對 下午,余承東離職、轉崗的消息開始在微信群、朋友圈流傳。 消息稱:余承東下月不再擔任華為終端董事長的信息開始在網絡傳播。據說來源於華為消息人士。 消息稱“華為終端董事長余承東即將與今年3月份也就是下個月正式卸任這一職
銷量下滑,余承東被“離職”,壞消息不斷的華為手機或跌出前3
提前 既然 最好 4.0 競爭對手 市場份額 網絡測試 戰略 前段時間 前不久,知名市場研究公司IDC發布的手機季度跟蹤報告顯示,2017 年第四季度,全球智能手機市場出貨量為4.035 億部,相比去年同期下降 6.3%。報告數據還顯示,華為手機Q4 的出貨量為4100萬部
看,華為手機余承東又開始大嘴了,這次會被任正非繼續打臉嗎?
華為手機余承東巴塞羅那全球移動大會(MWC 2018)今天正式開展,好不熱鬧。這不,華為手機負責人余承東在全球移動大會上放言:華為可能會在今明兩年成為第二大智能手機制造商,遲早會成為行業老大。 如此勁爆的言論一出,立馬引來媒體紛紛報道。不過在公開場合把目標當廣告的做法真的合適嗎?一、華為手機今明兩年超蘋果?我
華為手機:借助圍甲東風 用中國智慧影響世界
圍棋自從AlphaGo和柯潔一戰之後,圍棋這項古老的智力博弈又開始煥發起了新的活力。它不再只是停留在小眾圈子裏的黑白搏殺,而是作為凝結了人類智慧的頂端遊戲,被更多人所關註。今年,圍棋界頂級賽事迎來全新的獨家冠名合作夥伴——華為手機,3月27日,“2018華為手機杯·中國圍棋甲級聯賽”在浙江省湖州市長興開元芳草