我正在尝试向网站发送 HTTP 请求并读取它返回的数据。我尝试的第一个网站运行成功。它返回了大约 4 个数据包,然后返回了一个脚本捕获并终止的 0 个数据包。
但是,尝试加载http://www.google.com/并不能以这种方式工作。相反,它返回大约 10 个相同长度的数据包,最后一个较小的数据包,然后继续超时。发生这种情况正常吗?这一切都取决于主机使用的服务器吗?
如果有人可以推荐一种使用 socket.recv() 读取的替代方法,该方法会考虑到并不总是发送最终的空数据包,我们将不胜感激。谢谢。
try:
data = s.recv(4096)
while True:
more = s.recv(4096)
print len(more)
if not more:
break
else:
data += more
except socket.timeout:
errMsg = "Connection timed-out while connecting to %s. Request headers were as follows: %s", (parsedUrl.netloc, rHeader.headerContent)
self.logger.exception(errMsg)
raise Exception