我不确定以下代码是否是python中的阻塞操作:
import httplib
import urllib
def do_request(server, port, timeout, remote_url):
conn = httplib.HTTPConnection(server, port, timeout=timeout)
conn.request("POST", remote_url, urllib.urlencode(query_dictionary, True))
conn.close()
return True
do_request("http://www.example.org", 80, 30, "foo/bar")
print "hi!"
如果是,如何在python中创建非阻塞异步http请求?
感谢python noob。
答案 0 :(得分:5)
除非你竭尽全力阻止它,IO
将永远阻止。
虽然你可以做asynchronous requests,但你必须让整个程序对异步友好。 异步不会让您的代码无法阻止 。如果您不想阻止主循环,那么在另一个线程或进程中执行请求会容易得多。
如果您对异步网络编程感兴趣,则需要查看Twisted。