python的httplib.HTTPConnection阻塞吗?

时间:2010-04-05 01:30:07

标签: python

我不确定以下代码是否是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。

1 个答案:

答案 0 :(得分:5)

除非你竭尽全力阻止它,IO将永远阻止。

虽然你可以做asynchronous requests,但你必须让整个程序对异步友好。 异步不会让您的代码无法阻止 。如果您不想阻止主循环,那么在另一个线程或进程中执行请求会容易得多。

如果您对异步网络编程感兴趣,则需要查看Twisted