这些python Web服务器请求之间有什么区别?

时间:2013-11-25 12:26:14

标签: http python-3.x request

想知道是否有人可以解释下列之间的差异?另外你为什么要用一个呢?

urllib.request.urlopen
urllib.request.Request
HTTPConnection.request

我正在使用python 3.2。我正在尝试理解如何在Web上使用python,但文档对解释事物没有帮助。

1 个答案:

答案 0 :(得分:1)

urllib.request.urlopen向服务器发送请求并返回结果。这通常是您请求的文件/网站。因此,下面的代码将打印所请求文件的内容:

import urllib.request
r = urllib.request.urlopen('http://example.com/some_file.stuff')
print(r.read())

但urllib.request.Request只表示将发送到服务器以获取所需数据的数据。所以上面的例子可以像这样重写:

import urllib.request
req = urllib.request.Request('http://example.com/some_file.stuff')
r = urllib.request.urlopen(req)
print(r.read())

HTTPConnection做了不同的事情。它只是连接到服务器,然后让你负责完成其余的工作(无论你想在服务器上做什么,请求文件等......)都没有请求特定的文件。当urlopen打开并获取您请求的文件时。所以HTTPConnection更通用,但在大多数情况下,urllib.request.urlopen应该足够了。