[發明專利]一種Android上http請求失敗的處理方法有效
| 申請號: | 201711298577.5 | 申請日: | 2017-12-08 |
| 公開(公告)號: | CN107948303B | 公開(公告)日: | 2021-06-04 |
| 發明(設計)人: | 王旭東 | 申請(專利權)人: | 北京酷我科技有限公司 |
| 主分類號: | H04L29/08 | 分類號: | H04L29/08;H04L29/06 |
| 代理公司: | 北京國標律師事務所 11753 | 代理人: | 姚克楓 |
| 地址: | 100080 北京市海淀區農大*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 android http 請求 失敗 處理 方法 | ||
本發明涉及一種Android上http請求失敗的處理方法,在出現http請求失敗時,進行下述請求異常處理:緩存http請求失敗返回的請求異常信息,根據響應失敗的host和預設的IP,發送UDP請求,獲取響應host的對應的TCP代理服務的IP和端口號,基于TCP代理服務的IP和端口號,創建Socket對象,通過創建的Socket對象,再次進行二次TCP連接嘗試。本發明,針對HTTP請求失敗進行優化,嘗試獲取正確的數據,而不是直接拋出(返回)請求異常,盡最大可能保證客戶端的正常使用,提高用戶的使用體驗。
技術領域
本發明涉及http請求處理技術領域,具體說是一種Android上http請求失敗的處理方法。http請求失敗指http網絡請求失敗,包括但不限于http的post請求失敗。
背景技術
現有的Android系統,網絡請求是Android客戶端很重要的部分,一般是通過http網絡請求進行網絡連接。
http協議:超文本傳輸協議,對應于應用層,用于如何封裝數據。
TCP/UDP協議:傳輸控制協議,對應于傳輸層,主要解決數據在網絡中的傳輸。
TCP連接包括三次握手,握手過程中并不傳輸數據,在握手后服務器與客戶端才開始傳輸數據,理想狀態下,TCP連接一旦建立,在通訊雙方中的任何一方主動斷開連接之前,TCP連接會一直保持下去。
IP協議:對應于網絡層,同樣解決數據在網絡中的傳輸。
傳輸數據的時候只使用TCP/IP協議(傳輸層),如果沒有應用層來識別數據內容,傳輸后的協議都是無用的。
應用層協議很多ftp,http,telnet等,可以自己定義應用層協議。
web使用http作傳輸層協議,以封裝http文本信息,然后使用TCP/IP做傳輸層協議,將數據發送到網絡上。
Socket是對TCP/IP協議的封裝,其只是個接口不是協議,通過Socket我們才能使用TCP/IP協議,除了TCP,也可以使用UDP協議來傳遞數據。
Socket連接,至少需要一對套接字,分為clientSocket,serverSocket。具體的連接過程分為3個步驟:
(1) 服務器監聽:服務器并不定位具體客戶端套接字,而是時刻處于監聽狀態;
(2) 客戶端請求:客戶端套接字要描述它要連接的服務器套接字,提供地址和端口號,然后向服務器套接字提出連接請求;
(3) 連接確認:當服務器套接字收到客戶端套接字發來的請求后,就響應客戶端套接字的請求,并建立一個新的線程,把服務器套接字的描述發給客戶端。一旦客戶端確認了此描述,就正式建立連接。而服務器套接字繼續處于監聽狀態,繼續接收其他客戶端套接字的連接請求。
創建Socket連接的時候,可以指定傳輸層協議,可以是TCP或者UDP,當用TCP協議則該Socket就是個TCP連接,反之,當用UDP協議則該Socket就是個UDP連接。
在Android開發中,在不同的地區可能遇到一個http請求失敗從而發生請求異常,這樣就無法獲取正確的數據,客戶端就無法正常的顯示,進而影響到用戶的使用體驗。
發明內容
針對現有技術中存在的缺陷,本發明的目的在于提供一種Android上http請求失敗的處理方法,針對HTTP請求失敗進行優化,嘗試獲取正確的數據,而不是直接拋出(返回)請求異常,盡最大可能保證客戶端的正常使用,提高用戶的使用體驗。
為達到以上目的,本發明采取的技術方案是:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京酷我科技有限公司,未經北京酷我科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711298577.5/2.html,轉載請聲明來源鉆瓜專利網。





