CN108124016B - 一种发送post请求的方法和装置 - Google Patents
一种发送post请求的方法和装置 Download PDFInfo
- Publication number
- CN108124016B CN108124016B CN201810027124.7A CN201810027124A CN108124016B CN 108124016 B CN108124016 B CN 108124016B CN 201810027124 A CN201810027124 A CN 201810027124A CN 108124016 B CN108124016 B CN 108124016B
- Authority
- CN
- China
- Prior art keywords
- post request
- nsurlprotocol
- request
- component
- terminal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000006870 function Effects 0.000 claims description 33
- 238000003780 insertion Methods 0.000 claims description 5
- 230000037431 insertion Effects 0.000 claims description 5
- 230000009467 reduction Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 18
- 230000001133 acceleration Effects 0.000 description 12
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/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
- H04L67/63—Routing a service request depending on the request content or context
-
- 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)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种发送POST请求的方法和装置,属于数据传输技术领域。所述方法包括:终端接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码;当检测到通过所述WKWebView框架发送的目标网页的POST请求时,所述终端通过所述hook代码获取所述POST请求的body参数;所述终端通过所述hook代码将所述body参数拼接在所述POST请求的URL尾端,并发送拼接后的POST请求;所述终端通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。采用本发明,可以提高WKWebView框架下的POST请求的成功率。
Description
技术领域
本发明涉及数据传输技术领域,特别涉及一种发送POST请求的方法和装置。
背景技术
随着移动网络和移动终端的快速发展,越来越多的用户开始使用移动终端上的APP(Application,应用程序)来获取网络数据。由于移动网络的不稳定性,为了提升用户体验,增强应用的市场竞争力,APP服务方多采用CDN(Content Delivery Network,内容分发网络)网络加速服务对应用的业务进行加速。
NSURLProtocol组件是iOS操作系统中URL(Uniform Resource Locator,统一资源定位符)加载系统的一部分,通过它可以重定向APP内的业务请求。具体的,如果APP的开发者自定义了一个NSURLProtocol组件,并且写入APP的执行代码中,那么NSURLProtocol组件可以拦截到APP发往业务服务器的业务请求,然后对业务请求进行重定向,将其发送至指定的CDN节点,从而可以实现对APP的业务的加速服务。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
WKWebView框架是现在iOS操作系统的APP开发者普遍使用的浏览器框架,通过WKWebView框架发送POST请求中,终端将会通过独立的进程专门传输POST请求的body参数,故而NSURLProtocol组件对APP进程中的POST请求进行拦截时,无法拦截到POST请求的body参数,因此无法成功发送POST请求。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种发送POST请求的方法和装置。所述技术方案如下:
第一方面,提供了一种发送POST请求的方法,所述方法包括:
终端接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码;
当检测到通过所述WKWebView框架发送的目标网页的POST请求时,所述终端通过所述hook代码获取所述POST请求的body参数;
所述终端通过所述hook代码将所述body参数拼接在所述POST请求的URL尾端,并发送拼接后的POST请求;
所述终端通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
可选的,所述终端接收CDN节点反馈的目标网页的HTML数据之前,还包括:
所述终端通过所述WKWebView框架向业务服务器发送所述目标网页的HTML数据的GET请求;
所述终端通过所述NSURLProtocol组件拦截所述GET请求,并将所述GET请求发送至所述CDN节点。
可选的,所述终端接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码,包括:
所述终端接收CDN节点反馈的目标网页的二进制数据,将所述二进制数据转码为utf-8格式的字符串;
如果所述字符串中包含有HTML的特征标签,所述终端则通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码。
可选的,所述通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码,包括:
如果所述HTML数据中存在jQuery的ajax函数,则通过NSURLProtocol组件在所述HTML数据的头部内容后的相邻位置插入预设的hook代码;或者,
如果所述HTML数据中存在form表单,则通过NSURLProtocol组件在所述HTML数据的主体内容前的相邻位置插入预设的hook代码。
可选的,所述发送拼接后的POST请求之前,还包括:
所述终端通过所述hook代码为拼接后的POST请求添加鉴别标识;
所述终端通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求,包括:
所述终端根据所述鉴别标识,通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
第二方面,提供了一种发送POST请求的装置,所述装置包括:
插入模块,用于接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码;
获取模块,用于当检测到通过所述WKWebView框架发送的目标网页的POST请求时,通过所述hook代码获取所述POST请求的body参数;
拼接模块,用于通过所述hook代码将所述body参数拼接在所述POST请求的URL尾端,并发送拼接后的POST请求;
还原模块,用于通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
可选的,所述装置还包括:
发送模块,用于通过所述WKWebView框架向业务服务器发送所述目标网页的HTML数据的GET请求;
拦截模块,用于通过所述NSURLProtocol组件拦截所述GET请求,并将所述GET请求发送至所述CDN节点。
可选的,所述插入模块,具体用于:
接收CDN节点反馈的目标网页的二进制数据,将所述二进制数据转码为utf-8格式的字符串;
如果所述字符串中包含有HTML的特征标签,则通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码。
可选的,所述插入模块,具体用于:
如果所述HTML数据中存在jQuery的ajax函数,则通过NSURLProtocol组件在所述HTML数据的头部内容后的相邻位置插入预设的hook代码;或者,
如果所述HTML数据中存在form表单,则通过NSURLProtocol组件在所述HTML数据的主体内容前的相邻位置插入预设的hook代码。
可选的,所述装置还包括:
添加模块,用于通过所述hook代码为拼接后的POST请求添加鉴别标识;
所述还原模块,具体用于:
根据所述鉴别标识,通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
第三方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的发送POST请求的方法。
本发明实施例提供的技术方案带来的有益效果是:
本发明实施例中,终端接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在HTML数据中插入预设的hook代码;当检测到通过WKWebView框架发送的目标网页的POST请求时,终端通过hook代码获取POST请求的body参数;终端通过hook代码将body参数拼接在POST请求的URL尾端,并发送拼接后的POST请求;终端通过NSURLProtocol组件拦截拼接后的POST请求,还原body参数,向CDN节点发送还原后的POST请求。这样,在通过NSURLProtocol组件发送POST请求时,终端可以通过hook代码获取到POST请求的body参数,然后重新发送POST请求,从而可以成功重定向POST请求。本发明针对当前现在WKWebView框架中post请求body拦截技术方案做了改进,解决了NSURLProtocol组件下,WKWebView框架中jquery的ajax发起的post请求body易丢失、以及form表单提交数据的post请求body易丢失,而导致POST请求失败的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种发送POST请求的方法流程图;
图2是本发明实施例提供的一种发送POST请求的步骤示意图;
图3是本发明实施例提供的一种发送POST请求的装置结构示意图;
图4是本发明实施例提供的一种发送POST请求的装置结构示意图;
图5是本发明实施例提供的一种发送POST请求的装置结构示意图;
图6是本发明实施例提供的一种终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种发送POST请求的方法,该方法的可以由终端实现,终端可以是具备IOS操作系统的任意终端,如手机、平板电脑等。终端中可以安装有大量IOS操作系统下的APP,APP中可以内嵌有用于提供流量网络加速服务的功能代码,该功能代码可以是MAA SDK(Mobile Application Accelerator Software Development Kit,移动应用加速软件开发工具包),MAA SDK中可以包含有用于拦截并重定向APP的业务请求的NSURLProtocol组件。当终端通过APP向相应的业务服务器发送业务请求时,终端可以通过NSURLProtocol组件拦截该业务请求,并将其转发至CDN节点,为相关业务提供网络加速服务。上述终端可以包括处理器、存储器、收发器,处理器可以用于进行下述流程中的发送POST请求的处理,存储器可以用于存储下述处理过程中需要的数据以及产生的数据,收发器可以用于接收和发送下述处理过程中的相关数据。上述终端还可以包括显示部件和输入部件,显示部件可以用于显示网页等,可以是屏幕,输入部件可以用于用户向终端输入指令,可以是键盘或触控屏幕等。
下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:
步骤101,终端接收CDN节点反馈的目标网页的HTML(Hyper Text MarkupLanguage,超文本标记语言)数据,通过NSURLProtocol组件在HTML数据中插入预设的hook代码。
在实施中,用户可以在终端上安装IOS操作系统下的APP,该APP内置的浏览器框架可以采用WKWebView框架。同时,该APP的开发者在开发APP时,可以在其执行代码中添加MAASDK功能代码。这样,用户在终端上启动APP后,如果想要对APP的业务请求进行网络加速,则可以运行上述MAA SDK,从而终端可以通过MAA SDK设置网络加速服务的网络代理、配置服务参数等的一者或多者。
如果用户通过上述APP中访问某个网页(如目标网页),预先设定的用于提供网络加速服务的CDN节点可以向终端反馈上述目标网页的HTML数据。终端接收到CDN节点反馈的目标网页的HTML数据后,可以调用MAA SDK中的NSURLProtocol组件,在上述HTML数据中插入预设的用于获取POST请求的body参数的hook代码。需要说明的是,上述hook代码可以预先设置在上述MAA SDK中。
可选的,在步骤101前,终端从CDN节点获取目标网页的HTML数据的处理可以具体如下:终端通过WKWebView框架向业务服务器发送目标网页的HTML数据的GET请求;终端通过NSURLProtocol组件拦截GET请求,并将GET请求发送至CDN节点。
在实施中,用户可以打开终端上安装的APP,如果用户想要在该APP的WKWebView框架内浏览目标网页的页面内容,则可以通过预设的操作(如输入目标网页的URL,或者点击目标网页的链接按键等)触发终端生成目标网页的HTML数据的GET请求。进而,终端可以通过WKWebView框架向业务服务器发送目标网页的HTML数据的GET请求。之后,终端可以通过NSURLProtocol组件拦截到上述GET请求,然后可以对该GET请求进行重定向,即将GET请求发送至预设的提供网络加速服务的CDN节点。
可选的,NSURLProtocol组件仅处理属于HTML数据的POST请求,如果不是HTML数据的POST请求则不做处理,相应的,步骤101的处理可以如下:终端接收CDN节点反馈的目标网页的二进制数据,将二进制数据转码为utf-8(8-bit Unicode Transformation Format,8位统一码转换格式)格式的字符串;如果字符串中包含有HTML的特征标签,则通过NSURLProtocol组件在HTML数据中插入预设的hook代码。
在实施中,CDN节点可以以二进制数据的形式向终端反馈目标网页的页面内容,终端在接收到上述二进制数据后,可以先对二进制数据进行格式转换,即转码为utf-8格式的字符串。之后,终端可以判断转码得到的字符串中是否包含有HTML的特征标签,如果其中包含HTML的特征标签,则可以判断终端接收到的二进制数据为HTML数据,进而终端可以通过NSURLProtocol组件在HTML数据中插入预设的hook代码。
可选的,针对不同POST请求的发起函数,hook代码的插入位置也不同,相应的,步骤101中的部分处理可以如下:如果HTML数据中存在jQuery的ajax函数,则通过NSURLProtocol组件在HTML数据的头部内容后的相邻位置插入预设的hook代码;或者,如果HTML数据中存在form表单,则通过NSURLProtocol组件在HTML数据的主体内容前的相邻位置插入预设的hook代码。
在实施中,预设的hook代码只针对jQuery的ajax函数和form表单提交的POST请求进行处理,如果不是这两种方式发起的POST请求则不处理。故而,终端在接收到CDN节点反馈的目标网页的HTML数据之后,可以检测该HTML数据中是否存在jQuery的ajax函数和/或form表单,如果存在,则可以将hook代码插入到指定位置。具体的,如果HTML数据中存在jQuery的ajax函数,则可以通过NSURLProtocol组件在HTML数据的头部内容(即标签<head>和标签</head>之间的内容)后的相邻位置插入预设的hook代码;如果HTML数据中存在form表单,则可以通过NSURLProtocol组件在HTML数据的主体内容(即标签<body>和标签</body>之间的内容)前的相邻位置插入预设的hook代码。当然,在另一种情况下,如果HTML数据中不存在jQuery的ajax函数和form表单,也可以在HTML数据中插入hook代码,只不过hook代码将不会执行获取body参数的处理。
步骤102,当检测到通过WKWebView框架发送的目标网页的POST请求时,终端通过hook代码获取POST请求的body参数。
在实施中,终端在接收到目标网页的HTML数据后,可以在APP的WKWebView框架中显示目标网页的页面内容,目标网页中可以包含有需要用户进行输入操作的输入框,用户可以在上述输入框内输入相关信息,如账户名、密码等,并点击相应的提交按键,从而终端可以通过WKWebView框架生成并发送目标网页的POST请求。这样,终端可以检测到目标网页的POST请求,之后终端可以通过在HTML数据中插入的hook代码,来获取POST请求的body参数。
步骤103,终端通过hook代码将body参数拼接在POST请求的URL尾端,并发送拼接后的POST请求。
在实施中,终端通过HTML数据中插入的hook代码,获取到POST请求的body参数后,可以将该body参数拼接在POST请求的URL尾端,即形成“URL+body参数”的格式。之后,终端可以发送上述拼接后的POST请求。为了便于理解,此处简单介绍hook代码的实现原理,如HTML数据中发起POST请求的函数为A,hook代码中写有函数B,函数B的执行逻辑为获取函数A发送的POST请求的body参数,在URL尾端拼接body参数,然后代替函数A重新发起POST请求,这样,当需要发送POST请求时,终端实际是通过函数B发送了拼接后的POST请求。
可选的,在拼接POST请求后,还可以在POST请求中添加用于鉴别的标识信息,相应的处理可以如下:终端通过hook代码为拼接后的POST请求添加鉴别标识。
在实施中,终端通过hook代码将body参数拼接在POST请求的URL尾端之后,可以在拼接后的POST请求中添加鉴别标识。
步骤104,终端通过NSURLProtocol组件拦截拼接后的POST请求,还原body参数,向CDN节点发送还原后的POST请求。
在实施中,终端发送了拼接后的POST请求后,可以通过NSURLProtocol组件拦截到上述POST请求,从而终端可以在URL尾端获取到原来POST请求的body参数,然后可以还原body参数,生成还原后的POST请求。之后,终端则可以通过NSURLProtocol组件,将还原后的POST请求重定向至提供网络加速服务的CDN节点。
可选的,基于上述添加鉴别标识的处理,步骤104的处理可以如下:终端根据鉴别标识,通过NSURLProtocol组件拦截拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
在实施中,在发送拼接后的POST请求后,终端可以检测NSURLProtocol组件拦截的所有请求,如果发现携带有鉴别标识的POST请求,即可以认为该POST请求为拼接后的POST请求,故而可以通过NSURLProtocol组件对该POST请求进行还原,然后将还原后的POST请求重定向至提供网络加速服务的CDN节点。
为了便于理解,图2示出了发送POST请求的整体流程,第一步:启动MAASDK,第二步:通过NSURLProtocol组件拦截WKWebView框架的GET请求,第三步:向CDN节点发送GET请求,第四步:接收CDN节点反馈的二进制数据,第五步:判断是否为HTML数据,且包含jQuery的ajax函数或form表单,如果是,则进入第六步:在HTML数据中加载hook代码,第七步:通过hook代码获取WKWebView框架的POST请求的body参数,第八步:将body参数拼接在URL尾端,第九步:重新发送POST请求,第十步:通过NSURLProtocol组件拦截拼接后的POST请求,第十一步:还原POST请求,第十二步:向CDN节点发送POST请求。
本发明实施例中,终端接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在HTML数据中插入预设的hook代码;当检测到通过WKWebView框架发送的目标网页的POST请求时,终端通过hook代码获取POST请求的body参数;终端通过hook代码将body参数拼接在POST请求的URL尾端,并发送拼接后的POST请求;终端通过NSURLProtocol组件拦截拼接后的POST请求,还原body参数,向CDN节点发送还原后的POST请求。这样,在通过NSURLProtocol组件发送POST请求时,终端可以通过hook代码获取到POST请求的body参数,然后重新发送POST请求,从而可以成功发送POST请求。
基于相同的技术构思,本发明实施例还提供了一种发送POST请求的装置,如图3所示,所述装置包括:
插入模块301,用于接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码;
获取模块302,用于当检测到通过所述WKWebView框架发送的目标网页的POST请求时,通过所述hook代码获取所述POST请求的body参数;
拼接模块303,用于通过所述hook代码将所述body参数拼接在所述POST请求的URL尾端,并发送拼接后的POST请求;
还原模块304,用于通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
可选的,如图4所示,所述装置还包括:
发送模块305,用于通过所述WKWebView框架向业务服务器发送所述目标网页的HTML数据的GET请求;
拦截模块306,用于通过所述NSURLProtocol组件拦截所述GET请求,并将所述GET请求发送至所述CDN节点。
可选的,所述插入模块301,具体用于:
接收CDN节点反馈的目标网页的二进制数据,将所述二进制数据转码为utf-8格式的字符串;
如果所述字符串中包含有HTML的特征标签,则通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码。
可选的,所述插入模块301,具体用于:
如果所述HTML数据中存在jQuery的ajax函数,则通过NSURLProtocol组件在所述HTML数据的头部内容后的相邻位置插入预设的hook代码;或者,
如果所述HTML数据中存在form表单,则通过NSURLProtocol组件在所述HTML数据的主体内容前的相邻位置插入预设的hook代码。
可选的,如图5所示,所述装置还包括:
添加模块307,用于通过所述hook代码为拼接后的POST请求添加鉴别标识;
所述还原模块304,具体用于:
根据所述鉴别标识,通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
本发明实施例中,终端接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在HTML数据中插入预设的hook代码;当检测到通过WKWebView框架发送的目标网页的POST请求时,终端通过hook代码获取POST请求的body参数;终端通过hook代码将body参数拼接在POST请求的URL尾端,并发送拼接后的POST请求;终端通过NSURLProtocol组件拦截拼接后的POST请求,还原body参数,向CDN节点发送还原后的POST请求。这样,在通过NSURLProtocol组件发送POST请求时,终端可以通过hook代码获取到POST请求的body参数,然后重新发送POST请求,从而可以成功发送POST请求。
需要说明的是:上述实施例提供的发送POST请求的装置在发送POST请求时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的发送POST请求的装置与发送POST请求的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是根据一示例性实施例示出的一种终端的结构示意图。该终端可以用于实施上述实施例中提供的发送POST请求的方法。
终端600可以包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图6中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端600的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端600的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图6中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端600还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端600移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端600还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160中,扬声器161和传声器162可提供用户与终端600之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端600的通信。
WiFi属于短距离无线传输技术,终端600通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块170,但是可以理解的是,其并不属于终端600的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端600的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端600的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端600还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
具体在本实施例中,终端600的显示单元是触摸屏显示器,终端600还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行上述发送POST请求的处理的指令。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种发送POST请求的方法,其特征在于,所述方法包括:
终端接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码;
当检测到通过WKWebView框架发送的目标网页的POST请求时,所述终端通过所述hook代码获取所述POST请求的body参数;
所述终端通过所述hook代码将所述body参数拼接在所述POST请求的URL尾端,并发送拼接后的POST请求;
所述终端通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
2.根据权利要求1所述的方法,其特征在于,所述终端接收CDN节点反馈的目标网页的HTML数据之前,还包括:
所述终端通过所述WKWebView框架向业务服务器发送所述目标网页的HTML数据的GET请求;
所述终端通过所述NSURLProtocol组件拦截所述GET请求,并将所述GET请求发送至所述CDN节点。
3.根据权利要求1所述的方法,其特征在于,所述终端接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码,包括:
所述终端接收所述CDN节点反馈的目标网页的二进制数据,将所述二进制数据转码为utf-8格式的字符串;
如果所述字符串中包含有HTML的特征标签,所述终端则通过所述NSURLProtocol组件在所述HTML数据中插入所述预设的hook代码。
4.根据权利要求1所述的方法,其特征在于,所述通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码,包括:
如果所述HTML数据中存在jQuery的ajax函数,则通过所述NSURLProtocol组件在所述HTML数据的头部内容后的相邻位置插入所述预设的hook代码;或者,
如果所述HTML数据中存在form表单,则通过所述NSURLProtocol组件在所述HTML数据的主体内容前的相邻位置插入所述预设的hook代码。
5.根据权利要求1所述的方法,其特征在于,所述发送拼接后的POST请求之前,还包括:
所述终端通过所述hook代码为拼接后的POST请求添加鉴别标识;
所述终端通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求,包括:
所述终端根据所述鉴别标识,通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
6.一种发送POST请求的装置,其特征在于,所述装置包括:
插入模块,用于接收CDN节点反馈的目标网页的HTML数据,通过NSURLProtocol组件在所述HTML数据中插入预设的hook代码;
获取模块,用于当检测到通过WKWebView框架发送的目标网页的POST请求时,通过所述hook代码获取所述POST请求的body参数;
拼接模块,用于通过所述hook代码将所述body参数拼接在所述POST请求的URL尾端,并发送拼接后的POST请求;
还原模块,用于通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
发送模块,用于通过所述WKWebView框架向业务服务器发送所述目标网页的HTML数据的GET请求;
拦截模块,用于通过所述NSURLProtocol组件拦截所述GET请求,并将所述GET请求发送至所述CDN节点。
8.根据权利要求6所述的装置,其特征在于,所述插入模块,具体用于:
接收所述CDN节点反馈的目标网页的二进制数据,将所述二进制数据转码为utf-8格式的字符串;
如果所述字符串中包含有HTML的特征标签,则通过所述NSURLProtocol组件在所述HTML数据中插入所述预设的hook代码。
9.根据权利要求6所述的装置,其特征在于,所述插入模块,具体用于:
如果所述HTML数据中存在jQuery的ajax函数,则通过所述NSURLProtocol组件在所述HTML数据的头部内容后的相邻位置插入所述预设的hook代码;或者,
如果所述HTML数据中存在form表单,则通过所述NSURLProtocol组件在所述HTML数据的主体内容前的相邻位置插入所述预设的hook代码。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
添加模块,用于通过所述hook代码为拼接后的POST请求添加鉴别标识;
所述还原模块,具体用于:
根据所述鉴别标识,通过所述NSURLProtocol组件拦截所述拼接后的POST请求,还原所述body参数,向所述CDN节点发送还原后的POST请求。
11.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至5任一所述的发送POST请求的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810027124.7A CN108124016B (zh) | 2018-01-11 | 2018-01-11 | 一种发送post请求的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810027124.7A CN108124016B (zh) | 2018-01-11 | 2018-01-11 | 一种发送post请求的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108124016A CN108124016A (zh) | 2018-06-05 |
CN108124016B true CN108124016B (zh) | 2020-09-18 |
Family
ID=62232923
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810027124.7A Active CN108124016B (zh) | 2018-01-11 | 2018-01-11 | 一种发送post请求的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108124016B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382378B (zh) * | 2018-12-28 | 2023-04-25 | 北京字节跳动网络技术有限公司 | 一种资源加载方法、装置、移动终端及存储介质 |
CN111475314B (zh) * | 2020-04-03 | 2024-02-27 | 深信服科技股份有限公司 | 一种网络请求的处理方法、装置、设备及存储介质 |
CN112016031B (zh) * | 2020-10-16 | 2021-01-12 | 上海洋漪信息技术有限公司 | 针对WKWebView组件的网页优化方法 |
CN112929447B (zh) * | 2021-03-05 | 2022-09-13 | 深圳市联软科技股份有限公司 | WKWebview组件网络请求接管方法及系统 |
CN112948727B (zh) * | 2021-03-30 | 2024-05-14 | 平安科技(深圳)有限公司 | 基于WebView的数据注入方法、装置、设备及存储介质 |
CN114520995A (zh) * | 2022-01-11 | 2022-05-20 | 宝宝巴士股份有限公司 | 一种无侵入监听应用网络流量使用的实现方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119385A (zh) * | 2007-08-10 | 2008-02-06 | 深圳市深信服电子科技有限公司 | 利用WebPush技术提高HTTP网络速度的方法 |
CN102447688A (zh) * | 2010-10-15 | 2012-05-09 | 盛绩信息技术(上海)有限公司 | 网页游戏资源加速器及加速方法 |
CN102594877A (zh) * | 2012-01-19 | 2012-07-18 | 网宿科技股份有限公司 | 结合重定向下载请求和代理服务加速网络服务的方法、系统 |
CN104580192A (zh) * | 2014-12-31 | 2015-04-29 | 网宿科技股份有限公司 | 应用程序的网络访问请求的处理方法和装置 |
WO2016040379A1 (en) * | 2014-09-09 | 2016-03-17 | Shape Security, Inc. | Client/server polymorphism using polymorphic hooks |
CN107241408A (zh) * | 2017-06-05 | 2017-10-10 | 上海鋆创信息技术有限公司 | 一种数据传输方法及装置、终端设备、存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002211349A1 (en) * | 2000-10-03 | 2002-04-15 | Sun Microsystems, Inc. | Http transaction monitor with capacity to replay in debugging session |
US11388037B2 (en) * | 2016-02-25 | 2022-07-12 | Open Text Sa Ulc | Systems and methods for providing managed services |
-
2018
- 2018-01-11 CN CN201810027124.7A patent/CN108124016B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101119385A (zh) * | 2007-08-10 | 2008-02-06 | 深圳市深信服电子科技有限公司 | 利用WebPush技术提高HTTP网络速度的方法 |
CN102447688A (zh) * | 2010-10-15 | 2012-05-09 | 盛绩信息技术(上海)有限公司 | 网页游戏资源加速器及加速方法 |
CN102594877A (zh) * | 2012-01-19 | 2012-07-18 | 网宿科技股份有限公司 | 结合重定向下载请求和代理服务加速网络服务的方法、系统 |
WO2016040379A1 (en) * | 2014-09-09 | 2016-03-17 | Shape Security, Inc. | Client/server polymorphism using polymorphic hooks |
CN104580192A (zh) * | 2014-12-31 | 2015-04-29 | 网宿科技股份有限公司 | 应用程序的网络访问请求的处理方法和装置 |
CN107241408A (zh) * | 2017-06-05 | 2017-10-10 | 上海鋆创信息技术有限公司 | 一种数据传输方法及装置、终端设备、存储介质 |
Non-Patent Citations (2)
Title |
---|
"Hook技术在监控与安全防护领域的应用与研究";李海才;《中国优秀硕士学位论文全文数据库》;20170115;全文 * |
"Linux下对任意Http请求重定向";李军,熊和金;《交通与计算机》;20051030(第5期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108124016A (zh) | 2018-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108124016B (zh) | 一种发送post请求的方法和装置 | |
CN106970790B (zh) | 一种应用程序创建的方法、相关设备及系统 | |
CN107040609B (zh) | 一种网络请求处理方法和装置 | |
CN109857403B (zh) | 一种页面更新、页面处理方法及装置 | |
CN108153778B (zh) | 网页保存方法、网页读取方法及装置 | |
CN109040182B (zh) | 一种服务访问方法及装置、电子设备、存储介质 | |
US20160314219A1 (en) | Method and apparatus for invoking application programming interface | |
WO2018196588A1 (zh) | 一种信息分享方法、装置和系统 | |
CN105847325B (zh) | 应用客户端的调试方法及装置 | |
CN107391768B (zh) | 网页数据处理方法、装置、设备及计算机可读存储介质 | |
CN110058850B (zh) | 一种应用的开发方法、装置以及存储介质 | |
CN108039963B (zh) | 一种容器配置方法、装置及存储介质 | |
KR20140073243A (ko) | Http 메시지 처리 방법 및 장치 | |
WO2018077041A1 (zh) | 应用运行的方法及装置 | |
CN109739402B (zh) | 快应用处理方法及终端设备 | |
CN110224920B (zh) | 一种分享方法及终端设备 | |
WO2018006841A1 (zh) | 二维码信息传输方法、装置以及设备 | |
WO2013182063A1 (zh) | 一种启动WebApp的方法及装置 | |
CN108170723B (zh) | 一种网页资源获取方法、终端设备、服务器及系统 | |
CN106953898B (zh) | 一种获取软件包的方法和装置 | |
WO2017161994A1 (zh) | 一种显示页面的方法及装置、计算机存储介质 | |
CN105955739A (zh) | 一种图形界面的处理方法、装置和系统 | |
CN111478849A (zh) | 业务访问方法、装置和存储介质 | |
US11979941B2 (en) | Data transmission method and terminal | |
CN113613064A (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 |