python脚本模拟发送http请求:
rqUrl=/test/test.mp4
rqHeaders={'Host':test.com'}
httpClient = httplib.HTTPConnection(proxyIp,proxyPort,timeout=30)
httpClient.request("GET",rqUrl,rqBody,rqHeaders)
response = httpClient.getresponse()
httpClient.close() --位置1
re=response.read()
httpClient.close() --位置2
print re
print len(re)
结果显示re为空,长度为0,开始考虑是不是httpclient没有关闭,类似文件没有关闭获取不到值那样,加入httpClient.close(),注意有两个位置可以放,如果选择位置1,则re值为空,所以httpClient.close()要放在位置2上才不会影响re(相应body)值的获取(后来发现即使不close连接,re还是可以获取到的)
忽然想起了是不是类型不支持获取不到,因为我请求Url=/test/test.html,成功了,content_type、accept这两个请求头信息加上,后来测试发现不加也可以
再次排除问题,我是在测试ats的插件,插件功能需要提取到user-agent和referer的值,但是我没有添加这两个头,所以获取不到值请求返回403,因为403所以没有body内容所以re为空
这个问题还和同事争论了一场,我从没有怀疑过是插件的问题,感觉用wget和用脚本发送请求是一样的,忽略了wget不带user-agent头也可以获取到值
总结:出现问题了,要敢于怀疑每一个细节,因为每一处细节都可能是导致问题出现的原因
阅读(6995) | 评论(0) | 转发(0) |