Python 以下哪种是请求API的好方法?

Python 以下哪种是请求API的好方法?,python,api,urlopen,Python,Api,Urlopen,每当查看Python的API库时,似乎有大约一半的API库只是使用: response = urllib2.urlopen('https://www.example.com/api', data) 大约一半使用: connection = httplib.HTTPSConnection('www.example.com/api') # ... rest omitted for simplicity 我倾向于认为第二个版本更酷,我倾向于对大多数事情采用更面向对象的方法 使用其中一种方法是否有好

每当查看Python的API库时,似乎有大约一半的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或任何适合协议的连接。这基本上只是一条捷径,可以完成人们使用httplib所做的最常见的事情

urllib2还有一些代码来处理重定向和身份验证请求等事情,如果您使用纯httplib,那么所有这些都可能需要手动编码

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

YEP,URLILB2使用HTTPSCONTION或在其实现中适用于协议的任何类型的连接。这基本上只是一条捷径,可以完成人们使用httplib所做的最常见的事情

urllib2还有一些代码来处理重定向和身份验证请求等事情,如果您使用纯httplib,那么所有这些都可能需要手动编码


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

是真的,但它并没有真正回答他的问题;他想知道从API调用返回对象是否比只返回数据I有优势think@Michael:如果是这种情况,我想我误解了这个问题。urllib2.urlopen返回一个类似文件的对象,而不是字符串。True,但它并不能真正回答他的问题;他想知道从API调用返回对象是否比只返回数据I有优势think@Michael:如果是这种情况,我想我误解了问题。urllib2.urlopen返回一个类似文件的对象,而不是字符串。