1

每当查看 Python 的 API 库时,似乎有大约一半只是使用:

response = urllib2.urlopen('https://www.example.com/api', data)

大约一半使用:

connection = httplib.HTTPSConnection('www.example.com/api')
# ... rest omitted for simplicity

我倾向于认为第二个版本“更酷”(我偏向于对大多数事情采取更 OO 的方法)。

使用其中一个是否有好处或理由。或者,我是否在此过程中遗漏了什么。我怀疑它的实现中urllib2.urlopen使用HTTPSConnection了它,所以也许我代表我的编码更少。无论哪种方式,我都希望得到一些反馈。谢谢。

4

1 回答 1

4

是的,在其实现中urllib2使用HTTPSConnection(或任何适合协议的连接)。它基本上只是做人们最常做的事情的捷径httplib

urllib2还有一些代码来处理诸如重定向和身份验证请求之类的事情,如果您使用 plain 进行这些事情,您可能需要手动编写所有代码httplib

编辑:针对迈克尔的评论,如果您想知道对象与数据的关系......这有点取决于您将如何处理它。如果您需要连接对象(例如,用它做一些特殊的事情,也许是一个保活连接),那么当然,继续使用该httplib方式并返回连接对象。但是,如果您只是想获取数据,只需获取数据并返回即可。如果您喜欢 OOP,请知道 Python 中的所有内容在技术上都是对象;您从中得到的urllib2.urlopen是一个类似文件的对象,它具有将其值检索为字符串对象或行列表(也是字符串对象)的方法。我认为大多数 Python 程序员会认为在后一种情况下使用它是浪费精力httplib

于 2010-06-24T17:41:03.240 回答