如何在python中实现简单的POST,GET和DELETE

时间:2016-10-27 06:57:16

标签: python rest post get pinterest

简短版本:我可以只使用Requests模块进行POST,GET和DELETE吗?

我正在尝试使用Pinterest REST API。 (Pinterest API Explorer

我正在使用简单的路由,只需通过oauth手动获取我的身份验证令牌,所以基本上我需要知道的是POST,GET和DELETE到特定的URL并且还包含参数,然后返回一个JSON。

我真的只需要三个API函数,列出授权用户的关注者(GET),关注用户(POST)和取消关注用户(DELETE)。我需要的唯一参数是我手动获取的access_token。

这似乎是一个简单的问题,但是有大约5个python Pinterest API包装器,它们都没有完成,其中一些根本不工作。我查看了pycurl,httplib和请求模块。他们看起来都有一个足够简单的GET方法,但是使用POST和DELETE会变得更复杂。看起来它应该是超级简单的,一个接受方法(POST / GET / DELETE / etc),一个url和一组参数的函数,那么为什么它比这复杂呢?如果这很容易,我不明白为什么所有这些API包装器都要完成一半,因为它理论上应该像API中的每个函数调用具有这3个参数(带有第3个参数的数组)的函数一样简单

在Requests python包中,RequestMethods类下有这个函数: def请求(self,method,url,fields = None,headers = None,** urlopen_kw)

看起来我理解除了标题和** urlopen_kw之外的所有内容,但我认为它应该可以在没有变量的情况下工作,对吗?

如果有人能指出我正确的方向,我会很感激。

1 个答案:

答案 0 :(得分:1)

来自docs

  

以下是使用Request:

执行PUT请求的示例
import urllib.request
DATA = b'some data'
req = urllib.request.Request(url='http://localhost:8080', data=DATA,method='PUT')
with urllib.request.urlopen(req) as f:
    pass
print(f.status)
print(f.reason)

在您的情况下,该方法将是“POST”,“删除”或您喜欢的任何内容。

如果您想要提出更复杂的请求,请查看guide库的httplib2 - 这是值得一读的。