CN107948303A - 一种Android上http请求失败的处理方法 - Google Patents
一种Android上http请求失败的处理方法 Download PDFInfo
- Publication number
- CN107948303A CN107948303A CN201711298577.5A CN201711298577A CN107948303A CN 107948303 A CN107948303 A CN 107948303A CN 201711298577 A CN201711298577 A CN 201711298577A CN 107948303 A CN107948303 A CN 107948303A
- Authority
- CN
- China
- Prior art keywords
- http request
- port numbers
- android
- request
- failure
- 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.)
- Granted
Links
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 (5)
1.一种Android上http请求失败的处理方法,其特征在于,在出现http请求失败时,进行下述请求异常处理:
缓存http请求失败返回的请求异常信息,
根据响应失败的host和预设的IP,发送UDP请求,
获取响应host的对应的TCP代理服务的IP和端口号,
基于TCP代理服务的IP和端口号,创建Socket对象,
通过创建的Socket对象,再次进行二次TCP连接尝试。
2.如权利要求1所述的Android上http请求失败的处理方法,其特征在于:预设一默认的UDP请求服务的IP和端口号。
3.如权利要求1所述的Android上http请求失败的处理方法,其特征在于:通过解析URL对象,获取其中记录的host。
4.如权利要求1所述的Android上http请求失败的处理方法,其特征在于:端口号为指定的端口号。
5.如权利要求1所述的Android上http请求失败的处理方法,其特征在于:如果二次TCP连接尝试依然出现http请求失败,则判断本次响应host的TCP代理服务,和上一次的TCP代理服务是否相同,
如果相同,则返回缓存的请求异常信息,
如果不同,则重复“基于TCP代理服务的IP和端口号、创建Socket对象”的步骤一次,作为最后的TCP连接尝试。
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 true CN107948303A (zh) | 2018-04-20 |
CN107948303B 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365734A (zh) * | 2019-05-22 | 2019-10-22 | 中国平安人寿保险股份有限公司 | 服务端接口异常时的请求处理方法及装置 |
CN114598689A (zh) * | 2022-03-08 | 2022-06-07 | 深圳市火火兔智慧科技有限公司 | 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请求失败的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365734A (zh) * | 2019-05-22 | 2019-10-22 | 中国平安人寿保险股份有限公司 | 服务端接口异常时的请求处理方法及装置 |
CN110365734B (zh) * | 2019-05-22 | 2023-04-07 | 中国平安人寿保险股份有限公司 | 服务端接口异常时的请求处理方法及装置 |
CN114598689A (zh) * | 2022-03-08 | 2022-06-07 | 深圳市火火兔智慧科技有限公司 | Iot设备的交互方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107948303B (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8769039B2 (en) | Method and apparatus of performing remote computer file exchange | |
CN101291205B (zh) | 传输备份数据的方法、***和镜像服务器 | |
CN111083161A (zh) | 数据传输的处理方法及装置、物联网设备 | |
CN109327493A (zh) | 一种基于云的远程医疗监控***及监控方法 | |
CN105306433B (zh) | 一种访问虚拟机服务器的方法和装置 | |
CA2448426A1 (en) | Remote medical device access | |
KR101430032B1 (ko) | 물리적 전송 매체의 인터럽션 경우에 있어서 tcp 데이터 전송 프로세스를 향상시키는 방법 | |
WO2012075885A1 (zh) | 一种数据传输方法及装置 | |
CN106850805A (zh) | 一种数据传输方法及装置 | |
CN112671907A (zh) | 终端设备调试方法及装置、终端设备、存储介质 | |
CN108134713A (zh) | 一种通信方法及装置 | |
CN110661673B (zh) | 一种心跳检测的方法及装置 | |
CN108924219A (zh) | 远程操作终端的方法、装置及*** | |
CN107948303A (zh) | 一种Android上http请求失败的处理方法 | |
CN103841587B (zh) | 一种物联网融合网关的实现方法、装置及*** | |
CN102546331B (zh) | 业务信息的发送方法与装置 | |
CN101453479A (zh) | 一种快速的文件传输*** | |
CN107820136A (zh) | 一种基于p2p的视频传输方法及*** | |
CN105721509A (zh) | 一种服务器*** | |
CN108011944A (zh) | 一种Android上降低http请求失败的方法 | |
CA2454408A1 (en) | Subscriber station | |
CN111885203A (zh) | 一种基于cmsp进行远程管理的方法 | |
CN107872309A (zh) | 一种网络传输介质和速率的自适应方法、装置及设备 | |
CN107566476B (zh) | 一种接入方法、sdn控制器、转发设备及用户接入*** | |
CN112953951B (zh) | 一种基于国产cpu的用户登录验证和安全性检测方法及*** |
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 |