修改编辑并确认后,保存所述设置表单,完成所述响应规则设置。
[0078]示例性的,在接收到用户对已填入HTTP请求的会话数据的设置表单进行修改编辑并确认后,就可将所述响应规则的设置表单保存到本地的XML文件中,保存后的响应规则可以在响应规则列表中显示。
[0079]步骤S404、在基于Fiddler捕获到浏览器端再次发出所述HTTP请求后,以及捕获到服务器端发送HTTP响应包至所述浏览器端前,拦截所述HTTP响应包。
[0080]示例性的,在基于Fiddler捕获到浏览器端再次发出所述HTTP请求后,以及捕获到服务器端发送HTTP响应包至所述浏览器端前,可以基于Fiddler中的AutoTamperResponseBefore ()接口函数实现HTTP响应包的拦截,所述Fidd Ier中的AutoTamperResponseBeforeO接口函数具体可理解为在将HTTP请求对应的HTTP响应数据返回浏览器端之前,对Fiddler中的数据进行操作编程时所需的接口函数。
[0081 ] 步骤S405、读取包含至少一个响应规则的响应规则列表。
[0082]示例性的,在进行HTTP响应数据修改前,所述响应规则列表中至少包含一个响应规则。
[0083]步骤S406、判断所述响应规则列表中是否存在与所述HTTP请求的URL相匹配的响应规则;若是,则执行步骤S407;若否,则返回步骤S401。
[0084]示例性的,基于步骤S406进行响应规则的规则匹配,当响应列表中存在与所述HTTP请求的URL相匹配的响应规则时,可以执行步骤S407;否则,可以返回步骤S401。所述在响应列表中不存在与所述HTTP请求的URL相匹配的响应规则时,将其返回步骤S401具体可理解为响应列表中不存在所述HTTP请求的响应规则,若想对该HTTP请求进行响应数据的修改,则需要返回步骤S401先进行响应规则的设定。由此可以理解的是,本发明所提的方法是可循环执行的。
[0085]步骤S407、判断所述响应规则中是否存在与所述HTTP请求的POST参数相匹配的POST参数,若是,则执行步骤S408,若否,则返回步骤S401。
[0086]在本实施例中,当满足步骤S406的判定条件时,需要执行步骤S407进一步判定所述响应规则中的POST参数是否匹配HTTP请求的POST参数,若匹配,则可执行步骤S408;否贝1J,同样需要返回步骤S401,理由同上。
[0087]步骤S408、获取所述响应规则,并对所述HTTP请求的请求头进行修改。
[0088]示例性的,在满足步骤S407的判定条件后,就可以获得与所述HTTP请求相匹配的响应规则,并能获得所述响应规则中的数据信息。此外,还可基于AutoTamperRequestBefore()将该HTTP请求头中已设定的字段值修改成O,由此可以禁用所述HTTP请求的缓存,所述接口函数AutoTamperRequestBef ore O可理解为将HTTP请求发送给服务器之前对Fiddler中的数据进行操作编程时所需的接口函数。
[0089]步骤S409、对已拦截的HTTP响应包进行解压缩操作。
[0090]示例性的,将拦截的文件形式为.gzip的HTTP响应包解压缩,使其能够对HTTP响应包中的响应数据进行修改。
[0091 ] 步骤S410、获取已查找到的所述响应规则中的响应体,将所述HTTP响应包中的响应数据替换为所述响应体中的数据。
[0092]示例性的,可以基于所述响应规则中响应体的数据信息,对所述HTTP响应包中的响应数据进行替换,由此形成新的HTTP响应数据。进一步地,在对HTTP响应数据进行修改时,需要重新计算HTTP响应数据的长度值,并在基于Fiddler修改HTTP响应头中的Content-Length字段,使该字段值等于修改后的HTTP响应数据的长度值。
[0093]步骤S411、区别显示Fiddler会话列表中的所述HTTP请求。
[0094]示例性的,将Fiddler中进行过HTTP响应数据修改的HTTP请求的背景底色设置为绿色,以实现与其他正常的HTTP请求的区分,达到提醒用户所述HTTP请求的响应数据已被修改的目的。
[0095]本发明实施例四提供的一种修改HTTP响应数据的方法的优选实施例,详细描述了在HTTP协议代理调试工具Fiddler中基于本发明所提方法进行修改HTTP响应数据的过程,与Fiddler中现有的修改HTTP响应数据的方法相比,本发明所提的方法很大程度简化了基于HTTP协议代理调试工具对HTTP响应数据进行修改操作流程,从而节省了研发人员的研发时间,提升了HTTP协议代理调试工具的用户体验。
[0096]实施例五
[0097]图5为本发明实施例五提供的一种修改HTTP响应数据的装置的结构框图。该装置适用于修改HTTP响应数据的情况,可由软件和/或硬件实现,作为HTTP协议代理调试工具的一部分集成在HTTP协议代理调试工具中。如图5所示,该装置具体包括如下结构:响应规则设置模块51和响应数据修改模块52。其中,
[0098]响应规则设置模块51,用于在监听到对会话列表中的HTTP请求进行拖动操作后,获取所述HTTP请求的会话数据,并基于所述会话数据设置所述HTTP请求对应的响应规则,其中,所述会话列表中的HTTP请求是浏览器端发出的HTTP请求。
[0099]响应数据修改模块52,用于在监测到浏览器端再次发出所述HTTP请求后,匹配所述响应规则,并基于所述响应规则修改所述HTTP请求对应的HTTP响应数据。
[0100]在本实施例中,该装置首先通过响应规则设置模块51在监听到对会话列表中的HTTP请求进行拖动操作后,获取所述HTTP请求的会话数据,并基于所述会话数据设置所述HTTP请求对应的响应规则;然后又通过响应数据修改模块52在监测到浏览器端再次发出所述HTTP请求后,匹配所述响应规则,并基于所述响应规则修改所述HTTP请求对应的HTTP响应数据。
[0101 ]进一步地,响应规则设置模块51,包括:
[0102]数据获取单元511,用于获取所述HTTP请求的会话数据,同时弹出所述响应规则的设置表单,所述设置表单包括4个可编辑文本框,分别为别名、URUHTTP请求方法参数以及响应体。
[0103]数据填充单元512,用于将所述会话数据中包括的URUHTTP请求方法参数、以及所述HTTP请求的响应数据对应填充至所述设置表单的可编辑文本框。
[0104]表单保存单元513,用于在接收到用户对所述设置表单的可编辑文本框的修改编辑并确认后,保存所述设置表单,完成所述响应规则设置。
[0105]在上述实施例的基础上,所述数据填充单元512,具体可用于:
[0106]将所述会话数据中包括的URUHTTP请求方法参数、以及所述HTTP请求的响应数据分别填充至所述设置表单的名为URUHTTP请求方法参数以及响应体的可编辑文本框中;通过正则匹配提取所述会话数据的URL中包含的文件名,并将所述文件名填充至所述设置表单的名为别名的可编辑文本框中。
[0107]进一步地,所述响应数据修改模块52,包括:
[0108]响应拦截单元521,用于在捕获到浏览器端再次发出所述HTTP请求后,以及服务器端发送HTTP响应包至所述浏览器端前,拦截所述HTTP响应包。
[0109]规则匹配单元522,用于读取包含至少一个响应规则的响应规则列表,并在所述响应规则列表中查找和获取与所述HTTP请求相匹配的响应规则。
[0110]数据修改单元523,用于在获取到所述响应规则后,对所述HTTP请求的请求头进行修改,以禁用所述HTTP请求的缓存;并基于所述响应规则,修改所述HTTP响应包中的响应数据。
[0111]在上述实施例的基础上,所述规则匹配单元521,具体可用于:
[0112]判断所述响应规则列表中是否存在与所述HTTP请求的URL相匹配的响应规则;如果存在所述响应规则,则判断所述响应规则中是否存在与所述HTTP请求的HTTP请求方法参数相匹配的HTTP请求方法参数;如果存在相匹配的所述HTTP请求方法参数,则获取所述响应规则。
[0113]所述数据修改单元523,具体可用于:
[0114]在获取到所述响应规则后,对所述HTTP请求的请求头进行修改,并对所述HTTP响应包进行解压缩操作;获取所述响应规则中包含的响应体,并将所述HTTP响应包中的响应数据替换为所述响应体中的数据。
[0115]进一步地,该装置还包括:
[0116]区别显示模块53,用于在监测到浏览器端再次发出所述HTTP请求,基于所述响应规则修改所述HTTP请求对应的HTTP响应数据之