WebScarab关键源码分析(3)(续)

来源:互联网 发布:飓风雾化器做芯数据 编辑:程序博客网 时间:2024/05/17 01:10

接上篇。

接下来是两个if,如果接收到的是401或者407返回码(其含义分别为需验证和代理服务器需验证),则重新调整验证信息,并在下一个while里继续请求内容。

再一个是判断如果request使用的是head方法,则setNobody(),因为head方法是不可能有内容部分的,调用setnobody后未读取的输入流_in将不会再尝试读取。

接着判断connect域的内容,如果是不是keep-alive,则表示请求完成后连接应该释放,此时将_in和_out置空,表示这该对象“认为”这两个流是已经释放的了。但实际上还并没有释放,因为_in里还有内容没有flush出来。

如果是keep-alive,则记录lastrequesttime为当前时间,这个时间在判断一个socket是否为有效socket时会用到,详见此类中的invalidsocket方法,逻辑较简单,不再赘述。

随后如果响应中不含有401或者407返回码,循环退出,返回此reponse对象。

至此方法结束,对于此类的行为分析也差不多可以结束了。

原创粉丝点击