CN107948303B - 一种Android上http请求失败的处理方法 - Google Patents
一种Android上http请求失败的处理方法 Download PDFInfo
- Publication number
- CN107948303B CN107948303B CN201711298577.5A CN201711298577A CN107948303B CN 107948303 B CN107948303 B CN 107948303B CN 201711298577 A CN201711298577 A CN 201711298577A CN 107948303 B CN107948303 B CN 107948303B
- Authority
- CN
- China
- Prior art keywords
- request
- port number
- host
- http request
- proxy service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种Android上http请求失败的处理方法,在出现http请求失败时,进行下述请求异常处理:缓存http请求失败返回的请求异常信息,根据响应失败的host和预设的IP,发送UDP请求,获取响应host的对应的TCP代理服务的IP和端口号,基于TCP代理服务的IP和端口号,创建Socket对象,通过创建的Socket对象,再次进行二次TCP连接尝试。本发明,针对HTTP请求失败进行优化,尝试获取正确的数据,而不是直接抛出(返回)请求异常,尽最大可能保证客户端的正常使用,提高用户的使用体验。
Description
技术领域
本发明涉及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请求失败进行优化,尝试获取正确的数据,而不是直接抛出(返回)请求异常,尽最大可能保证客户端的正常使用,提高用户的使用体验。
为达到以上目的,本发明采取的技术方案是:
一种Android上http请求失败的处理方法,其特征在于,在出现http请求失败时,进行下述请求异常处理:
缓存http请求失败返回的请求异常信息,
根据响应失败的host和预设的IP,发送UDP请求,
获取响应host的对应的TCP代理服务的IP和端口号,
基于TCP代理服务的IP和端口号,创建Socket对象,
通过创建的Socket对象,再次进行二次TCP连接尝试。
在上述技术方案的基础上,预设一默认的UDP请求服务的IP和端口号。
在上述技术方案的基础上,通过解析URL对象,获取其中记录的host。
在上述技术方案的基础上,端口号为指定的端口号。
在上述技术方案的基础上,如果二次TCP连接尝试依然出现http请求失败,则判断本次响应host的TCP代理服务,和上一次的TCP代理服务是否相同,
如果相同,则返回缓存的请求异常信息,
如果不同,则重复“基于TCP代理服务的IP和端口号、创建Socket对象”的步骤一次,作为最后的TCP连接尝试。
本发明所述的Android上http请求失败的处理方法,针对HTTP请求失败进行优化,尝试获取正确的数据,而不是直接抛出(返回)请求异常,尽最大可能保证客户端的正常使用,提高用户的使用体验。
附图说明
本发明有如下附图:
图1本发明的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
如图1所示,本发明所述的Android上http请求失败的处理方法,在出现http请求失败时,进行下述请求异常处理:
缓存http请求失败返回的请求异常信息,
根据响应失败的host和预设的IP,发送UDP请求,
获取响应host的对应的TCP代理服务的IP和端口号,响应host指响应UDP请求的host,
基于TCP代理服务的IP和端口号,创建Socket对象,
通过创建的Socket对象,再次进行二次TCP连接尝试,即再次进行基于TCP的Socket链接,如果成功获取输入输出流,则可读写数据流,完成后相应关闭Socket链接。
在上述技术方案的基础上,预设一默认的UDP请求服务的IP和端口号。该预设用于发送UDP请求时使用。
UDP请求向指定的服务器发送。UDP请求为简易UDP请求。作为可选择的实施方案,可以为DatagramPacket请求。
显然,UDP请求达到目的后,需要有相应的关闭UDP连接请求,不再详述。
在上述技术方案的基础上,通过解析URL对象,获取其中记录的host。响应失败的host,响应host,均可按此方式获取。
在上述技术方案的基础上,端口号为指定的端口号。如有需求,可以通过指定端口号的方式,替代解析得到的端口号。
在上述技术方案的基础上,如果二次TCP连接尝试依然出现http请求失败,则判断本次响应host的TCP代理服务,和上一次的TCP代理服务是否相同,
如果相同,则返回缓存的请求异常信息,
如果不同,则重复“基于TCP代理服务的IP和端口号、创建Socket对象”的步骤一次,作为最后的TCP连接尝试。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (2)
1.一种Android上http请求失败的处理方法,其特征在于,在出现http请求失败时,进行下述请求异常处理:
缓存http请求失败返回的请求异常信息,
预设一默认的UDP请求服务的IP和端口号,该预设用于发送UDP请求时使用,
通过解析URL对象,获取其中记录的host,响应失败的host,响应host,均按此方式获取,
根据响应失败的host和预设的IP,发送UDP请求,
获取响应host的对应的TCP代理服务的IP和端口号,响应host指响应UDP请求的host,
基于TCP代理服务的IP和端口号,创建Socket对象,
通过创建的Socket对象,再次进行二次TCP连接尝试,
如果二次TCP连接尝试依然出现http请求失败,则判断本次响应host的TCP代理服务,和上一次的TCP代理服务是否相同,
如果相同,则返回缓存的请求异常信息,
如果不同,则重复“基于TCP代理服务的IP和端口号、创建Socket对象”的步骤一次,作为最后的TCP连接尝试。
2.如权利要求1所述的Android上http请求失败的处理方法,其特征在于:端口号为指定的端口号,通过指定端口号的方式,替代解析得到的端口号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711298577.5A CN107948303B (zh) | 2017-12-08 | 2017-12-08 | 一种Android上http请求失败的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711298577.5A CN107948303B (zh) | 2017-12-08 | 2017-12-08 | 一种Android上http请求失败的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107948303A CN107948303A (zh) | 2018-04-20 |
CN107948303B true CN107948303B (zh) | 2021-06-04 |
Family
ID=61946359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711298577.5A Active CN107948303B (zh) | 2017-12-08 | 2017-12-08 | 一种Android上http请求失败的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107948303B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365734B (zh) * | 2019-05-22 | 2023-04-07 | 中国平安人寿保险股份有限公司 | 服务端接口异常时的请求处理方法及装置 |
CN114598689B (zh) * | 2022-03-08 | 2024-08-23 | 深圳市火火兔智慧科技有限公司 | Iot设备的交互方法、装置、计算机设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001093061A1 (en) * | 2000-05-26 | 2001-12-06 | Vocaltec Ltd. | Communications protocol |
US7917633B1 (en) * | 2007-04-17 | 2011-03-29 | Glance Networks, Inc. | Method and apparatus for reconnecting to a remote viewing session |
CN102624570A (zh) * | 2012-04-27 | 2012-08-01 | 杭州东信北邮信息技术有限公司 | 实现对web服务器可用性进行检测的监控系统和方法 |
CN103051717A (zh) * | 2012-12-25 | 2013-04-17 | 北京小米科技有限责任公司 | 一种http请求处理的方法、装置和设备 |
CN105323319A (zh) * | 2015-11-09 | 2016-02-10 | 深圳市江波龙科技有限公司 | 物联网设备的通信方法和系统 |
CN106506253A (zh) * | 2016-09-08 | 2017-03-15 | 深圳先进技术研究院 | 一种基于tcp/ip通信协议的在线客户端数量的统计系统及方法 |
CN108011944A (zh) * | 2017-11-30 | 2018-05-08 | 北京酷我科技有限公司 | 一种Android上降低http请求失败的方法 |
-
2017
- 2017-12-08 CN CN201711298577.5A patent/CN107948303B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001093061A1 (en) * | 2000-05-26 | 2001-12-06 | Vocaltec Ltd. | Communications protocol |
US7917633B1 (en) * | 2007-04-17 | 2011-03-29 | Glance Networks, Inc. | Method and apparatus for reconnecting to a remote viewing session |
CN102624570A (zh) * | 2012-04-27 | 2012-08-01 | 杭州东信北邮信息技术有限公司 | 实现对web服务器可用性进行检测的监控系统和方法 |
CN103051717A (zh) * | 2012-12-25 | 2013-04-17 | 北京小米科技有限责任公司 | 一种http请求处理的方法、装置和设备 |
CN105323319A (zh) * | 2015-11-09 | 2016-02-10 | 深圳市江波龙科技有限公司 | 物联网设备的通信方法和系统 |
CN106506253A (zh) * | 2016-09-08 | 2017-03-15 | 深圳先进技术研究院 | 一种基于tcp/ip通信协议的在线客户端数量的统计系统及方法 |
CN108011944A (zh) * | 2017-11-30 | 2018-05-08 | 北京酷我科技有限公司 | 一种Android上降低http请求失败的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107948303A (zh) | 2018-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110365793B (zh) | 违规外联监测方法、装置、系统及存储介质 | |
CN108512885B (zh) | 用于网络包处理的方法、系统和存储介质 | |
CN102075508B (zh) | 针对网络协议的漏洞挖掘系统和方法 | |
EP3313022B1 (en) | Resending method and device for hypertext transfer request, and client | |
CN110505220B (zh) | 支持opc协议实现双机热备的方法、装置以及通信终端 | |
CN104079571A (zh) | 一种识别Android模拟器的方法及装置 | |
CN107948303B (zh) | 一种Android上http请求失败的处理方法 | |
CN104065508A (zh) | 应用服务健康检查方法、装置和系统 | |
CN110661673B (zh) | 一种心跳检测的方法及装置 | |
CN104468265A (zh) | 局域网终端在线状态的检测方法和装置 | |
US20080180524A1 (en) | Remote monitoring control method of network camera | |
CN111245831B (zh) | Ftp数据传输方法及装置、服务端和客户端的信息交互系统 | |
CN1980232A (zh) | 远程登录会话维护方法、远程登录代理和计算机网络系统 | |
CN113873057B (zh) | 数据处理方法和装置 | |
CN108011944B (zh) | 一种Android上降低http请求失败的方法 | |
CN110969740A (zh) | 门禁管理系统对不同类型门禁设备的接入方法及门禁系统 | |
CN112968914B (zh) | 请求数据实时导入漏洞扫描器的系统、方法、设备及介质 | |
US20130226984A1 (en) | Method and apparatus of providing optimized web browser communications | |
CN109495602A (zh) | 一种网络接入异常的处理方法及装置 | |
CN111147285B (zh) | 一种云安全产品统一管理方法 | |
KR101395830B1 (ko) | 프록시를 경유한 접속 세션정보 확인시스템과 이를 기반으로 한 세션정보 확인방법 | |
JP6690959B2 (ja) | Tcpハンドシェークをリフォームするデバイス及び方法 | |
CN111885203A (zh) | 一种基于cmsp进行远程管理的方法 | |
CN105721231A (zh) | 一种业务质量感知探测方法及装置 | |
CN113411228B (zh) | 一种网络状况的确定方法及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |