如何在Python中发起HTTP请求而不获取HTTP响应?
我想要发送请求后就不再管它。我的HTTP REST服务调用需要几秒钟才能得到回应。我的目标是避免在这几秒钟内等待,这样我可以继续执行后面的代码。
我不太想使用Python的线程。如果必须的话,我会使用Twisted的异步调用,并且不去理会回应。
3 个回答
0
你不需要使用twisted这个库,单用urllib就可以了。可以看看这个链接:http://pythonquirks.blogspot.com/2009/12/asynchronous-http-request.html
我在这里复制了相关的代码,但要感谢那个链接:
import urllib2 class MyHandler(urllib2.HTTPHandler): def http_response(self, req, response): return response o = urllib2.build_opener(MyHandler()) o.open('http://www.google.com/')
0
HTTP就是一种请求和回复的方式。建议使用异步的方法来处理。
1
你需要以异步的方式来实现,因为HTTP协议规定了请求和回复的过程。
另外一个选择是直接使用套接字,这样可以绕过任何现成的模块。这意味着你可以不遵循协议,自己写一些代码来忽略任何回复,实际上就是在发送请求后直接断开连接。