是否可以在不中斷使用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