每当查看 Python 的 API 库时,似乎有一半只是简单地使用:
response = urllib2.urlopen('https://www.example.com/api', data)
大约一半使用:
connection = httplib.HTTPSConnection('www.example.com/api')
# ... rest omitted for simplicity
我倾向于认为第二个版本“更酷”(我倾向于对大多数事情采用更面向对象的方法)。
使用一个优于另一个是否有好处或理由。或者,我是不是错过了什么。我怀疑 urllib2.urlopen
在其实现中使用了 HTTPSConnection
,所以也许有人只是代表我少编码。无论哪种方式,我都喜欢一些反馈。谢谢。
最佳答案
是的,urllib2
在其实现中使用了 HTTPSConnection
(或适用于该协议(protocol)的任何类型的连接)。它基本上只是执行人们使用 httplib
执行的最常见操作的快捷方式。
urllib2
也有一些代码来处理诸如重定向和身份验证请求之类的事情,如果您使用纯 httplib
来处理所有这些事情,您可能需要手动编写代码。
编辑:作为对 Michael 评论的回应,如果您想了解对象与数据……这在某种程度上取决于您将如何处理它。如果您需要连接对象(例如,用它做一些特殊的事情,可能是一个保持连接),那么当然,继续使用 httplib
方式并返回连接对象。但是,如果您只是想获取数据,那么只需获取数据并返回即可。如果您喜欢 OOP,请知道从技术上讲,Python 中的一切都是对象;您从 urllib2.urlopen
得到的是一个类似文件的对象,它具有将其值检索为字符串对象或行列表(也是字符串对象)的方法。我认为大多数 Python 程序员会认为在后一种情况下使用 httplib
是一种浪费。
关于python - 以下哪项是请求 API 的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3112452/