以下哪一项是申请API的好方法?

时间:2010-06-24 17:37:29

标签: python api urlopen

每当查看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,因此可能只有一个代表我的代码更少。无论哪种方式,我都喜欢一些反馈。感谢。

1 个答案:

答案 0 :(得分:4)

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

urllib2还有一些代码可以处理重定向和身份验证请求等内容,如果您使用普通httplib进行操作,则可能需要手动编码。

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