是否可以在不中断使用python httplib连接的情况下发出多个请求? 像,我可以上传一个大文件到服务器的部分,但在一个套接字连接。单个连接中的多个请求?
我寻找答案。但是没有一件看起来如此清晰明确。
任何示例/相关链接将是有益的。 谢谢。
是否可以在不中断使用python httplib连接的情况下发出多个请求? 像,我可以上传一个大文件到服务器的部分,但在一个套接字连接。单个连接中的多个请求?
我寻找答案。但是没有一件看起来如此清晰明确。
任何示例/相关链接将是有益的。 谢谢。
是的,连接保持打开,直到您使用close()
方法关闭它。
下面的例子,从httplib documentation拍摄,展示了如何使用一个连接来执行多个请求:
>>> import httplib
>>> conn = httplib.HTTPConnection("www.python.org")
>>> conn.request("GET", "/index.html")
>>> r1 = conn.getresponse()
>>> print r1.status, r1.reason
200 OK
>>> data1 = r1.read()
>>> conn.request("GET", "/parrot.spam")
>>> r2 = conn.getresponse()
>>> print r2.status, r2.reason
404 Not Found
>>> data2 = r2.read()
>>> conn.close()
你需要确保调用您回应.read()函数。否则,你会得到这样的错误:
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
conn.request("GET", "/2.html")
File "C:\Python27\lib\httplib.py", line 955, in request
self._send_request(method, url, body, headers)
File "C:\Python27\lib\httplib.py", line 983, in _send_request
self.putrequest(method, url, **skips)
File "C:\Python27\lib\httplib.py", line 853, in putrequest
raise CannotSendRequest()
CannotSendRequest
如果返回的数据没有被读出,引发此异常(即使没有数据返回,或者是收到一个HTTP错误[例如404])。
你会介意看看http://stackoverflow.com/questions/18221809/sending-a-few-requests-using-one-connection – 2013-08-14 03:58:58