CN107748660A - 一种自定义兼容性的网络请求框架的实现方法 - Google Patents
一种自定义兼容性的网络请求框架的实现方法 Download PDFInfo
- Publication number
- CN107748660A CN107748660A CN201711042699.8A CN201711042699A CN107748660A CN 107748660 A CN107748660 A CN 107748660A CN 201711042699 A CN201711042699 A CN 201711042699A CN 107748660 A CN107748660 A CN 107748660A
- Authority
- CN
- China
- Prior art keywords
- self
- request
- framework
- network request
- class
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明属于软件设计领域,其公开了一种自定义兼容性的网络请求框架的实现方法,基于安卓SDK来封装一种传输稳定、捕捉性强且发送格式多样化的网络请求框架。该方法包括:在安卓官网的原基础上,以asynctask异步类为基础,以抽象方法来构造请求框架,再通过接口暴露给使用者,以便在回调的时候自定义实现方式。相比于http以map的方式提交或以json格式的方式去提交网络请求这两种普遍方式,本发明实现的网络请求框架采用String...(不定参)的方式提交参数,除了能提交以上两种形式,还能提交XML格式的参数,这样对于一些提交文件或者特殊格式的参数时就更兼容,更稳定。
Description
技术领域
本发明属于软件设计领域,具体涉及一种自定义兼容性的网络请求框架的实现方法。
背景技术
目前,安卓开发的基于网络请求的方式大致有以下几种:
1.httpclient方式;该方式由于框架存在的API数量过多,很难在不破坏兼容性的情况下对其进行升级或扩展,且维护成本高昂,因此,在新版本的安卓SDK中被谷歌官方弃用;
2.Xutils方式;该方式也因为扩展性差,发布者不再对其进行维护;
3.okhttp方式;该方式的扩展性较前两者较好,但是传输参数格式较单一。
因此,本申请有必要提出一种自定义兼容性的网络请求框架的实现方法,基于安卓SDK来封装一种传输稳定、捕捉性强且发送格式多样化的网络请求框架。
发明内容
本发明所要解决的技术问题是:提出一种自定义兼容性的网络请求框架的实现方法,基于安卓SDK来封装一种传输稳定、捕捉性强且发送格式多样化的网络请求框架。
本发明解决其技术问题所采用的技术方案是:
一种自定义兼容性的网络请求框架的实现方法,包括:
以安卓SDKHTTP原生态的请求为基础做二次封装,加入自定义的请求提交和编码方式,以asynctask异步类为基础,以抽象方法来构造请求框架,再通过接口暴露给使用者,以便在回调的时候自定义实现方式。
作为进一步优化,所述编码方式以及请求的提交方式均单独封装。
作为进一步优化,将请求提交的报文体以string的方式保存。
作为进一步优化,所述以抽象方法来构造请求框架,具体包括:
首先创建一个成功和失败的回调接口;
然后将两种不同的提交方式以不同的自定义标记存放在的一个枚举类中,再将参数编码方式存放在另一个枚举类中;
然后在一个管理类中创建两种抽象的请求方式,即只创建方法名,不去具体实现方法里面的逻辑,接着在asynctask类网络线层中去将之前的抽象方法进行具体的逻辑实现,同时以枚举类的不同的请求标记和编码方式为分类依据去进行两种实现方式的逻辑实现,这样就做到了两种抽象方法两种实现的需求;主线程回调方法中去将之前创建的抽象方法进行具体的逻辑实现,最后再根据不同的返回的结果来绑定成功或者失败的接口,同时将返回结果也一并传入到回调的接口中以供调用者使用。
本发明的有益效果是:相比于其他的http以map的方式提交或以json格式的方式去提交网络请求这两种普遍方式,本发明实现的网络请求框架采用String...(不定参)的方式提交参数,除了能提交以上两种形式,还能提交XML格式的参数,这样对于一些提交文件或者特殊格式的参数时就更兼容,更稳定;因为String...相当于一个灵活的变形器,它可以解析成包括以上3个格式类型的任何的字符串形式。而以String...(不定参)的提交形式来提交数据是为提交的数据类型更多,且不会受限于服务器对客户端数据提交的限制。也就是说无论服务器以规定以哪种形式去提交。都能兼容,不需要去做额外的适配和特别的处理。
具体实施方式
本发明所要解决的技术问题是:提出一种自定义兼容性的网络请求框架的实现方法,基于安卓SDK来封装一种传输稳定、捕捉性强且发送格式多样化的网络请求框架。
该方法以安卓SDKHTTP原生态的请求为基础做二次封装,加入自定义的请求提交和编码方式,以asynctask异步类为基础,以抽象方法来构造请求框架,再通过接口暴露给使用者,以便在回调的时候自定义实现方式。
在以抽象方法来构造请求框架时,将编码方式、请求的提交方式、成功或失败的回调接口全部暴露给使用者,方便进行修改或者二次封装。
将所述编码方式以及请求的提交方式均单独封装,更加易于调用或修改。
在本发明中,将请求提交的报文体以string...的方式保存,这样可以提交任意格式的参数,除以上map、json、XML以外,还支持任意格式的单键值对或者字符串等等。
具体而言,构造请求框架的方法为:首先创建一个成功和失败的回调接口;
然后将两种不同的提交方式以不同的自定义标记存放在的一个枚举类中,再将参数编码方式存放在另一个枚举类中;
然后在一个管理类中创建两种抽象的请求方式,即只创建方法名,不去具体实现方法里面的逻辑,接着在asynctask类网络线层中去将之前的抽象方法进行具体的逻辑实现,同时以枚举类的不同的请求标记和编码方式为分类依据去进行两种实现方式的逻辑实现,这样就做到了两种抽象方法两种实现的需求;主线程回调方法中去将之前创建的抽象方法进行具体的逻辑实现,最后再根据不同的返回的结果来绑定成功或者失败的接口,同时将返回结果也一并传入到回调的接口中以供调用者使用。
Claims (4)
1.一种自定义兼容性的网络请求框架的实现方法,其特征在于,包括:
以安卓SDKHTTP原生态的请求为基础做二次封装,加入自定义的请求提交和编码方式,以asynctask异步类为基础,以抽象方法来构造请求框架,再通过接口暴露给使用者,以便在回调的时候自定义实现方式。
2.如权利要求1所述的一种自定义兼容性的网络请求框架的实现方法,其特征在于,所述编码方式以及请求的提交方式均单独封装。
3.如权利要求1所述的一种自定义兼容性的网络请求框架的实现方法,其特征在于,将请求提交的报文体以string的方式保存。
4.如权利要求1所述的一种自定义兼容性的网络请求框架的实现方法,其特征在于,所述以抽象方法来构造请求框架,具体包括:
首先创建一个成功和失败的回调接口;
然后将两种不同的提交方式以不同的自定义标记存放在的一个枚举类中,再将参数编码方式存放在另一个枚举类中;
然后在一个管理类中创建两种抽象的请求方式,即只创建方法名,不去具体实现方法里面的逻辑,接着在asynctask类网络线层中去将之前的抽象方法进行具体的逻辑实现,同时以枚举类的不同的请求标记和编码方式为分类依据去进行两种实现方式的逻辑实现,主线程回调方法中去将之前创建的抽象方法进行具体的逻辑实现,最后再根据不同的返回的结果来绑定成功或者失败的接口,同时将返回结果也一并传入到回调的接口中以供调用者使用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711042699.8A CN107748660A (zh) | 2017-10-30 | 2017-10-30 | 一种自定义兼容性的网络请求框架的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711042699.8A CN107748660A (zh) | 2017-10-30 | 2017-10-30 | 一种自定义兼容性的网络请求框架的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107748660A true CN107748660A (zh) | 2018-03-02 |
Family
ID=61253526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711042699.8A Pending CN107748660A (zh) | 2017-10-30 | 2017-10-30 | 一种自定义兼容性的网络请求框架的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107748660A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681448A (zh) * | 2018-04-02 | 2018-10-19 | 武汉斗鱼网络科技有限公司 | Ios系统的网络请求方法、存储介质、电子设备及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681394A (zh) * | 2015-12-29 | 2016-06-15 | 深圳市瑞铭无限科技有限公司 | 基于OKHttp和GSON的网络请求方法和装置 |
CN107071017A (zh) * | 2017-03-31 | 2017-08-18 | 武汉斗鱼网络科技有限公司 | 用于安卓系统的网络请求代理工具及代理方法 |
-
2017
- 2017-10-30 CN CN201711042699.8A patent/CN107748660A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681394A (zh) * | 2015-12-29 | 2016-06-15 | 深圳市瑞铭无限科技有限公司 | 基于OKHttp和GSON的网络请求方法和装置 |
CN107071017A (zh) * | 2017-03-31 | 2017-08-18 | 武汉斗鱼网络科技有限公司 | 用于安卓系统的网络请求代理工具及代理方法 |
Non-Patent Citations (3)
Title |
---|
ANDROID达人: ""使用HttpURLConnection+AsyncTask访问webservice接口(返回json字符串)"", 《CSDN》 * |
PUKE3615: ""Android的异步加载AsyncTask方式Http请求的封装(改进版)"", 《CSDN》 * |
一闪一闪1313: ""我的Android之旅(十)----URI 异步任务AsyncTask和get || post请求"", 《CSDN》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108681448A (zh) * | 2018-04-02 | 2018-10-19 | 武汉斗鱼网络科技有限公司 | Ios系统的网络请求方法、存储介质、电子设备及系统 |
CN108681448B (zh) * | 2018-04-02 | 2021-09-07 | 武汉斗鱼网络科技有限公司 | Ios系统的网络请求方法、存储介质、电子设备及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870821B (zh) | 应用程序的跨平台调用方法及系统 | |
CN102469065B (zh) | 一种与html5浏览器互通数据的方法及系统 | |
KR20180100171A (ko) | 인터페이스 데이터 디스플레이 방법 및 장치 | |
CN105955208B (zh) | 一种基于云平台的网络机器人数据控制系统 | |
JP2010531481A5 (zh) | ||
CN102546612A (zh) | 用户态下基于rdma协议的远程过程调用实现方法 | |
CN102137126B (zh) | 网页数据更新系统及方法 | |
CN104363285A (zh) | 一种网络通信程序生成方法及装置 | |
CN104486396A (zh) | 一种跨平台的网络数据的传输方法 | |
CN113704002A (zh) | 一种基于私有协议的rpc组件的实现方法及rpc组件 | |
CN102185877A (zh) | 一种实时显示网页上flash下载进度的方法及系统 | |
CN107748660A (zh) | 一种自定义兼容性的网络请求框架的实现方法 | |
CN104572594A (zh) | 动态pdf实时生成方法 | |
CN107181794B (zh) | 基于dimse消息发送与接收的dicom网络传输方法 | |
US9614900B1 (en) | Multi-process architecture for a split browser | |
CN106357713A (zh) | 实现远程过程调用的方法和客户端装置以及服务器装置 | |
CN105024923B (zh) | 基于xmpp扩展消息的消息分类实现的方法及装置 | |
CN104298506A (zh) | 一种网页分页插件的实现方法 | |
CN110448892B (zh) | 基于增强现实的游戏实现方法及系统 | |
CN105590169A (zh) | 一种猪场信息化生产控制系统及方法 | |
CN105224573B (zh) | 一种规则数据配置方法及装置、系统 | |
CN109600448A (zh) | 一种精简化本地大数据上传方法 | |
CN101089811A (zh) | 一种基于ExternalInterface的Flash与.Net分层架构方法 | |
CN104281632B (zh) | 基于对象协议映射的编码解码方法及系统 | |
CN103593473A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180302 |