本技术涉及数据传输,特别是涉及一种数据获取方法、装置、系统、浏览器及存储介质。
背景技术:
1、目前很多厂商都支持云平台来管理终端设备,这种情况下,浏览器与终端设备之间无法直接传输数据,需要通过云服务进行设备协议透传。例如,浏览器发送请求报文至云服务,云服务内置透传服务,透传服务对请求报文不做处理,直接将请求报文转发给终端设备,终端设备响应请求报文后,把响应报文返回给云服务,云服务再将响应报文转发给浏览器。这样,便实现了浏览器与终端设备之间的协议透传,能够进行一些设备配置与控制功能。
2、在上述协议透传过程中,考虑到传输性能与传输速度,云服务会对响应报文的数据量进行控制,例如,单次传输的最大数据量为16kb。在这种限制下,假设响应报文的数据量较大,云服务会将响应报文截断。这将导致浏览器在解析数据时报错,无法获得完整数据而出现界面显示异常的问题。
技术实现思路
1、本技术实施例的目的在于提供一种数据获取方法、装置、系统、浏览器及存储介质,以避免云服务将响应报文截断,进而避免浏览器在解析数据时报错,并且避免因浏览器无法获得完整数据而出现界面显示异常的问题。具体技术方案如下:
2、第一方面,本技术实施例提供了一种数据获取方法,应用于浏览器,所述浏览器通过云服务向终端设备发送请求报文,所述终端设备响应所述请求报文,并通过所述云服务向所述浏览器返回响应报文,所述方法包括:
3、获取所述云服务转发的响应报文;
4、通过所述响应报文的数据格式对应的数据完整性确定方式,确定所述响应报文是否被截断;
5、如果所述响应报文被截断,根据所述云服务单次所能够传输的最大数据量以及所述响应报文的数据格式,确定所述云服务单次所能传输的该数据格式的响应报文包括的数据的目标条数;
6、按照所述目标条数,向所述云服务请求数据,以使所述云服务按照所述目标条数向所述浏览器返回数据。
7、可选的,所述响应报文包括数组节点以及非数组节点,所述数组节点包括多条子节点;
8、所述根据所述云服务单次所能够传输的最大数据量以及所述响应报文的数据格式,确定所述云服务单次所能传输的该数据格式的响应报文包括的数据的目标条数的步骤,包括:
9、根据所述云服务单次所能够传输的最大数据量以及所述响应报文包括的非数组节点的数据量,确定所述云服务单次所能够传输的响应报文包括的数组节点的数据量;
10、统计所述响应报文包括的所述数组节点中的每条子节点的数据量,并从所述数据量中确定最大值;
11、计算所述云服务单次所能够传输的响应报文包括的数组节点的数据量与所述最大值之间的商值,得到所述云服务单次所能传输的该数据格式的响应报文包括的数据的目标条数。
12、可选的,所述根据所述云服务单次所能够传输的最大数据量以及所述响应报文包括的非数组节点的数据量,确定所述云服务单次所能够传输的响应报文包括的数组节点的数据量的步骤,包括:
13、计算所述云服务单次所能够传输的最大数据量与所述非数组节点的数据量之间的差值;
14、计算所述差值与预设的预留数据量之间的差值,得到所述云服务单次所能够传输的响应报文包括的数组节点的数据量。
15、可选的,所述统计所述响应报文包括的所述数组节点中的每条子节点的数据量的步骤,包括以下至少一种:
16、如果所述响应报文为xml格式,按顺序遍历所述响应报文中的每个节点,每遍历到一个节点,确定该节点的名称标识是否为数组节点对应的名称标识;如果该节点的名称标识为所述数组节点对应的名称标识,确定该节点为数组节点,并将该节点中每对开始名称标识和结束名称标识之间包括的数据的数据量,作为每条子节点的数据量;
17、如果所述响应报文为json格式,按顺序遍历所述响应报文中的每个节点,每遍历到一个节点,确定该节点的名称标识是否为数组节点对应的名称标识;如果该节点的名称标识为所述数组节点对应的名称标识,确定该节点为数组节点,并将该节点中每个子节点对应的名称标识所在的子节点的数据量,作为每条子节点的数据量。
18、可选的,所述通过所述响应报文的数据格式对应的数据完整性确定方式,确定所述响应报文是否被截断的步骤,包括以下至少一种:
19、如果所述响应报文为xml格式,遍历所述响应报文包括的各字段,确定所述响应报文是否包括报文结束标签;如果所述响应报文不包括报文结束标签,确定所述响应报文被截断;
20、如果所述响应报文为xml格式,调用xml格式对应的数据完整性确定函数,对所述响应报文进行解析,得到解析结果;如果所述解析结果中存在用于指示解析错误的节点,确定所述响应报文被截断;
21、如果所述响应报文为json格式,调用json格式对应的数据完整性确定函数,对所述响应报文进行解析;如果json格式对应的数据完整性确定函数报错,确定所述响应报文被截断。
22、可选的,所述浏览器所在的终端部署有本地服务,所述云服务部署有透传服务;
23、所述获取所述云服务转发的响应报文的步骤,包括以下至少一种:
24、所述浏览器获取所述云服务转发的响应报文,其中,所述请求报文为所述浏览器发送至所述云服务,并由所述透传服务发送至所述终端设备的;
25、所述本地服务获取所述云服务转发的响应报文,其中,所述请求报文为所述本地服务发送至所述云服务,并由所述透传服务发送至所述终端设备的;
26、所述浏览器获取所述云服务发送的响应报文,其中,所述响应报文为所述云服务对所述终端设备发送至所述透传服务的响应数据,进行解析得到的,所述请求报文为所述浏览器发送至所述云服务,并由所述透传服务发送至所述终端设备的。
27、可选的,所述浏览器包括web页面;
28、所述方法还包括:
29、在获取到所述云服务按照所述目标条数向所述浏览器返回的数据后,解析向所述浏览器返回的数据,并在所述web页面中显示解析后的数据。
30、第二方面,本技术实施例提供了一种数据获取装置,应用于浏览器,所述浏览器通过云服务向终端设备发送请求报文,所述终端设备响应所述请求报文,并通过所述云服务向所述浏览器返回响应报文,所述装置包括:
31、响应报文获取模块,用于获取所述云服务转发的响应报文;
32、响应报文确定模块,用于通过所述响应报文的数据格式对应的数据完整性确定方式,确定所述响应报文是否被截断;
33、目标条数确定模块,用于如果所述响应报文被截断,根据所述云服务单次所能够传输的最大数据量以及所述响应报文的数据格式,确定所述云服务单次所能传输的该数据格式的响应报文包括的数据的目标条数;
34、数据请求模块,用于按照所述目标条数,向所述云服务请求数据,以使所述云服务按照所述目标条数向所述浏览器返回数据。
35、可选的,所述响应报文包括数组节点以及非数组节点,所述数组节点包括多条子节点;
36、所述目标条数确定模块,包括:
37、数据量确定子模块,用于根据所述云服务单次所能够传输的最大数据量以及所述响应报文包括的非数组节点的数据量,确定所述云服务单次所能够传输的响应报文包括的数组节点的数据量;
38、最大值确定子模块,用于统计所述响应报文包括的所述数组节点中的每条子节点的数据量,并从所述数据量中确定最大值;
39、目标条数计算子模块,用于计算所述云服务单次所能够传输的响应报文包括的数组节点的数据量与所述最大值之间的商值,得到所述云服务单次所能传输的该数据格式的响应报文包括的数据的目标条数。
40、可选的,所述数据量确定子模块,包括:
41、差值计算单元,用于计算所述云服务单次所能够传输的最大数据量与所述非数组节点的数据量之间的差值;
42、数据量计算单元,用于计算所述差值与预设的预留数据量之间的差值,得到所述云服务单次所能够传输的响应报文包括的数组节点的数据量。
43、可选的,所述最大值确定子模块,包括:
44、第一数据量确定单元,用于如果所述响应报文为xml格式,按顺序遍历所述响应报文中的每个节点,每遍历到一个节点,确定该节点的名称标识是否为数组节点对应的名称标识;如果该节点的名称标识为所述数组节点对应的名称标识,确定该节点为数组节点,并将该节点中每对开始名称标识和结束名称标识之间包括的数据的数据量,作为每条子节点的数据量;
45、第二数据量确定单元,用于如果所述响应报文为json格式,按顺序遍历所述响应报文中的每个节点,每遍历到一个节点,确定该节点的名称标识是否为数组节点对应的名称标识;如果该节点的名称标识为所述数组节点对应的名称标识,确定该节点为数组节点,并将该节点中每个子节点对应的名称标识所在的子节点的数据量,作为每条子节点的数据量。
46、可选的,所述响应报文确定模块,包括:
47、第一响应报文确定子模块,用于如果所述响应报文为xml格式,遍历所述响应报文包括的各字段,确定所述响应报文是否包括报文结束标签;如果所述响应报文不包括报文结束标签,确定所述响应报文被截断;
48、第二响应报文确定子模块,用于如果所述响应报文为xml格式,调用xml格式对应的数据完整性确定函数,对所述响应报文进行解析,得到解析结果;如果所述解析结果中存在用于指示解析错误的节点,确定所述响应报文被截断;
49、第三响应报文确定子模块,用于如果所述响应报文为json格式,调用json格式对应的数据完整性确定函数,对所述响应报文进行解析;如果json格式对应的数据完整性确定函数报错,确定所述响应报文被截断。
50、可选的,所述浏览器所在的终端部署有本地服务,所述云服务部署有透传服务;
51、所述响应报文获取模块,包括:
52、第一响应报文获取子模块,用于所述浏览器获取所述云服务转发的响应报文,其中,所述请求报文为所述浏览器发送至所述云服务,并由所述透传服务发送至所述终端设备的;
53、第二响应报文获取子模块,用于所述本地服务获取所述云服务转发的响应报文,其中,所述请求报文为所述本地服务发送至所述云服务,并由所述透传服务发送至所述终端设备的;
54、第三响应报文获取子模块,用于所述浏览器获取所述云服务发送的响应报文,其中,所述响应报文为所述云服务对所述终端设备发送至所述透传服务的响应数据,进行解析得到的,所述请求报文为所述浏览器发送至所述云服务,并由所述透传服务发送至所述终端设备的。
55、可选的,所述浏览器包括web页面;
56、所述装置还包括:
57、数据显示模块,用于在获取到所述云服务按照所述目标条数向所述浏览器返回的数据后,解析向所述浏览器返回的数据,并在所述web页面中显示解析后的数据。
58、第三方面,本技术实施例提供了一种数据获取系统,所述数据获取系统包括浏览器、云服务以及终端设备,其中:
59、所述浏览器,用于通过所述云服务向所述终端设备发送请求报文,
60、所述终端设备,用于响应所述请求报文,并通过所述云服务向所述浏览器返回响应报文;
61、所述云服务,还用于转发所述响应报文至所述浏览器;
62、所述浏览器,还用于执行上述第一方面任一项所述的方法。
63、第四方面,本技术实施例提供了一种浏览器,包括:
64、存储器,用于存放计算机程序;
65、处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法。
66、第五方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法。
67、本技术实施例有益效果:
68、本技术实施例提供的方案中,浏览器可以获取云服务转发的响应报文;通过响应报文的数据格式对应的数据完整性确定方式,确定响应报文是否被截断;如果响应报文被截断,根据云服务单次所能够传输的最大数据量以及响应报文的数据格式,确定云服务单次所能传输的该数据格式的响应报文包括的数据的目标条数;按照目标条数,向云服务请求数据,以使云服务按照目标条数向浏览器返回数据。在响应报文被云服务截断的情况下,浏览器可以根据云服务单次所能够传输的最大数据量以及响应报文的数据格式,确定云服务单次所能传输的该数据格式的响应报文包括的数据的目标条数。响应报文包括数组节点和非数组节点,由于响应报文的数据格式可以反映数组节点和非数组节点在该数据格式的响应报文中所占的数据量,因此基于云服务单次所能够传输的最大数据量和响应报文的数据格式,可以确定云服务单次所能够传输的数据的目标条数,该数据即数组节点包括的子节点。接下来,浏览器便可以按照目标条数向云服务请求数据,云服务便可以按照目标条数向浏览器返回数据。由于目标条数的数据的数据量能够满足云服务单次传输的最大数据量的限制,因此可以保证云服务返回的响应报文中的数据是未被截断的,进而可以避免浏览器在解析数据时报错,并且避免因浏览器无法获得完整数据而出现界面显示异常的问题。当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。
1.一种数据获取方法,其特征在于,应用于浏览器,所述浏览器通过云服务向终端设备发送请求报文,所述终端设备响应所述请求报文,并通过所述云服务向所述浏览器返回响应报文,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述响应报文包括数组节点以及非数组节点,所述数组节点包括多条子节点;
3.根据权利要求2所述的方法,其特征在于,所述根据所述云服务单次所能够传输的最大数据量以及所述响应报文包括的非数组节点的数据量,确定所述云服务单次所能够传输的响应报文包括的数组节点的数据量的步骤,包括:
4.根据权利要求2所述的方法,其特征在于,所述统计所述响应报文包括的所述数组节点中的每条子节点的数据量的步骤,包括以下至少一种:
5.根据权利要求1-4任一项所述的方法,其特征在于,所述通过所述响应报文的数据格式对应的数据完整性确定方式,确定所述响应报文是否被截断的步骤,包括以下至少一种:
6.根据权利要求1-4任一项所述的方法,其特征在于,所述浏览器所在的终端部署有本地服务,所述云服务部署有透传服务;
7.根据权利要求1-4任一项所述的方法,其特征在于,所述浏览器包括web页面;
8.一种数据获取装置,其特征在于,应用于浏览器,所述浏览器通过云服务向终端设备发送请求报文,所述终端设备响应所述请求报文,并通过所述云服务向所述浏览器返回响应报文,所述装置包括:
9.根据权利要求8所述的装置,其特征在于,所述响应报文包括数组节点以及非数组节点,所述数组节点包括多条子节点;
10.一种数据获取系统,其特征在于,所述数据获取系统包括浏览器、云服务以及终端设备,其中:
11.一种浏览器,其特征在于,包括:
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法。