一种uri标识的csv片段的http检索方法_2

文档序号:9326920阅读:来源:国知局
024](3)从第一行开始逐行读取CSV文件中的数据,从中依次截取各个列选择范围的起始列和结束列之间的数据,将其添加到变量fragment中,直到读取完CSV文件为止;
[0025](4)变量fragment中存储了结果CSV片段。
[0026]所述单元格提取算法的处理步骤如下:
[0027](I)初始化变量fragment为空;
[0028](2)以CSV片段的范围中的“;”为分割点获取若干个单元格选择范围,并获取每个单元格选择范围的起始单元格〈行,列〉和结束单元格〈行,列〉参数;
[0029](3)依次针对每个单元格选择范围执行如下操作:从第一行开始逐行读取CSV文件直到读取到起始单元格的行;从起始单元格的行开始截取起始单元格的列和结束单元格的列之间的数据,将其添加到变量fragment中,依次逐行读取CSV文件并针对当前行以同样方式截取数据、添加到变量fragment中,直到读取并处理完结束单元格的行为止;
[0030](4)变量fragment中存储了结果CSV片段。
[0031]本发明的技术方案是由客户端与服务端通过传统的HTTP协议(即HTTP/1.1)进行交互实现的,因此无需扩充当前的HTTP协议。本技术方案由客户端解析CSV片段的URI并把主资源标识符与片段选择参数发送给服务端,再由服务端从主资源中提取相应的CSV片段后返回给客户端,这种方法与客户端下载完整CSV文件后再提取片段的传统技术方案相比,大大节省了网络带宽、缩短了通信延时。
[0032]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0033]图1示出了根据本发明技术方案的一种URI标识的CSV片段的HTTP检索方法的流程示意图;
[0034]图2示出了根据本发明技术方案的客户端解析片段URI并获得主资源URI及CSV片段标识符的流程示意图。
【具体实施方式】
[0035]下面详细描述本发明的【具体实施方式】,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的概念、对象、要素等或具有相同或类似功能的概念、对象、要素等。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0036]本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
[0037]为了解决上述技术问题,本发明是通过以下技术方案实现的:
[0038]如图1所示,URI标识的CSV片段的HTTP检索方法,包括如下步骤:
[0039]步骤SI,客户端解析片段URI并获得主资源URI及CSV片段标识符,如图2,具体包括:
[0040]步骤Sl-1,以片段URI中的为分割点获取主资源URI和CSV片段标识符;
[0041]步骤S1-2,判断主资源URI是否符合RFC-3986语法,若否,则报错并终止;
[0042]步骤S1-3,判断CSV片段标识符是否符合RFC-7111语法,若否,则报错并终止;
[0043]步骤S1-4,以CSV片段标识符中的“=”为分割点获取CSV片段的选择方式和范围。
[0044]步骤S2,客户端将CSV片段的选择方式和范围发送给服务端,具体如下:
[0045]客户端将如下HTTP POST请求发送给服务端:
[0046]P0ST< 绝对路径 >ΗΤΤΡ/1.I
[0047]Accept:*/*
[0048]User-Agent: < 客户端的版本 >
[0049]Host: < 主机 >
[0050]Connect1n:keep-alive
[0051 ] Content-Type: applicat1n/χ-www-form-urIencoded
[0052]Content-Length: < 消息体的长度 >
[0053]scheme =〈CSV片段的选择方式>&range =〈CSV片段的范围 >(注:此行是消息体)
[0054]步骤S3,服务端根据CSV片段的选择方式和范围提取CSV片段,具体如下:
[0055]服务端从客户端HTTP POST请求的消息体中读取CSV片段的选择方式(scheme)和范围(range)的参数值;若为“行(row) ”选择方式,则调用行提取算法获取CSV片段;若为“列(col) ”选择方式,则调用列提取算法获取CSV片段;若为“单元格(cell) ”选择方式,则调用单元格提取算法获取CSV片段。
[0056]所述行提取算法的处理步骤如下:
[0057](I)初始化变量fragment为空;
[0058](2)以CSV片段的范围中的“;”为分割点获取若干个行选择范围,并获取每个行选择范围的起始行和结束行参数;
[0059](3)依次针对每个行选择范围执行如下操作:从第一行开始逐行读取CSV文件直至读取到行选择范围的起始行;从该起始行开始逐行读取CSV文件的数据,将其添加到变量fragment中,直到读取完行选择范围的结束行为止;
[0060](4)变量fragment中存储了结果CSV片段。
[0061]所述列提取算法的处理步骤如下:
[0062](I)初始化变量fragment为空;
[0063](2)以CSV片段的范围中的“;”为分割点获取若干个列选择范围,并获取每个列选择范围的起始列和结束列参数;
[0064](3)从第一行开始逐行读取CSV文件中的数据,从中依次截取各个列选择范围的起始列和结束列之间的数据,将其添加到变量fragment中,直到读取完CSV文件为止;
[0065](4)变量fragment中存储了结果CSV片段。
[0066]所述单元格提取算法的处理步骤如下:
[0067](I)初始化变量fragment为空。
[0068](2)以CSV片段的范围中的“;”为分割点获取若干个单元格选择范围,并获取每个单元格选择范围的起始单元格〈行,列〉和结束单元格〈行,列〉参数。
[0069](3)依次针对每个单元格选择范围执行如下操作:从第一行开始逐行读取CSV文件直到读取到起始单元格的行;从起始单元格的行开始截取起始单元格的列和结束单元格的列之间的数据,将其添加到变量fragment中,依次逐行读取CSV文件并针对当前行以同样方式截取数据、添加到变量fragment中,直到读取并处理完结束单元格的行为止。
[0070](4)变量fragment中存储了结果CSV片段。
[0071]步骤S4,服务端将提取的CSV片段返回给客户端,具体如下:
[0072]服务端以如下HTTP 2000K响应返回给客户端:
[0073]HTTP/1.12000K
[0074]Date:<响应的发送时间>
[0075]Content-Length:〈CSV 片段的长度 >
[0076]Server: <源服务器版本>
[0077]{CSV片段数据}
[0078]步骤S5,客户端获取CSV片段并显示或保存,具体如下:
[0079]从服务端返回的HTTP 2000K响应的消息体中读取CSV片段数据,并将其进行屏幕显示或保存为文件。
[0080]下面以一个具体CSV片段URI为例,来进一步说明本发明技术方案的【具体实施方式】。[0081 ] 给定一个文本/CSV媒体类型的CSV数据文件Consumer_Complaints.csv,该数据文件是从美国消费者金融保护局官方网站(http: //www.consumerf inance.gov/complaintdatabase/)下载的,它的总字节数为58.3MB,包含373378行X 14列。将该CSV数据文件作为主资源(其 URI 为 http: / / dbws.hhu.edu.cn/csv/data/Con sumer_Comp I a i n t s.csv)存储于经扩充的Apache Tomcat Web服务器。设该CSV数据文件的一个CSV片段URI为http://dbws.hhu.edu.cn/csv/data/Consumer_Complaints.csv#row = 1-30000,该 CSV片段的选择方式是“行”,范围是“ 1-30000”。
[0082]如图1所示,URI标识的CSV片段的HTTP检索方法,包括如下步骤:
[0083]步骤SI,客户端解析片段URI并获得主资源URI及CSV片段标识符,如图2,具体包括:
[0084]步骤Sl-1,以片段URI中的为分割点获取主资源URI和CSV片段标识符。
[0085]主资源URI 为:http://dbws.hhu.edu.cn/csv/data/Consumer_Complaints.csv
[0086]CSV 片段标识符为:row = 1-30000。
[0087]步骤Sl-2,判断主资源URI是否符合RFC-3986语法,若否,则报错并终止。
[0088]判断结果为:主资源URI符合RFC-3986语法。
[0089]步骤S1-3,判断CSV片段标识符是否符合RFC-7111语法,若否,则报错并终止。
[0090]
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1