如何为RESTApi功能设置Python

时间:2015-10-12 14:31:37

标签: python rest

我是Python开发的新手。我只需要编写一个调用我们的REST API的简单应用程序,并可以测试GET,PUT,POST,DELETE。我在Visual Studio 2015中使用Python Dev Tools。我遇到的第一个问题是我应该在运行时将此应用程序附加到哪个进程,以便我可以实际看到结果的输出?下一个问题是基于下面的代码,有什么我缺少发出基本的POST请求吗?我删除了我的实际URL,用户名和密码,但是,我已经测试了SwaggerUI,我确实得到了一个Web令牌,所以我有正确的URL和凭据。

import urllib
import requests


data = {
    'username': 'myUsernameIsHere',
    'password': 'myPasswordIsHere'
    }

urllib.request.urlopen('http://MYURLISINSERTEDHERE', urllib.urlencode(data))

print(data)

2 个答案:

答案 0 :(得分:1)

除非您需要,否则请勿使用urllib

您导入requests就像:

一样简单
payload = {
    'username': 'myUsernameIsHere',
    'password': 'myPasswordIsHere'
}

r = requests.post("http://yourwebsite", data=payload)

根据API,您可能需要将有效负载编码为类似JSON的内容。

import json
r = requests.post("http://yourwebsite", data=json.dumps(payload))

答案 1 :(得分:0)

因此,在查看文档后,我是如何设置我的GET和POST请求的。我首先必须对我们的身份验证执行POST以获取承载令牌。一旦我有了这个令牌,我就创建了一个局部变量来存储令牌。然后发出我想要的任何GET请求并传递给令牌。以下是它看起来很明显你会填写你自己的用户名,密码,网址和令牌,但你明白了。

POST请求 - 获取我的不记名令牌

#import requests library for making REST calls
import requests
import json

#specify url
url = 'YOUR URL GOES HERE'

#Create payload that will be passed to API for authentication
payload = {
           #This will be the data that you need to POST to the REST API. 
In my example, in order to get back a web token, I just needed username and password.
               "username": "USERNAME",
               "password": "PASSWORD"
              }

#Fill in headers
headers = {'content-type': 'application/json'}

#Call REST API
response = requests.post(url, data=json.dumps(payload), headers=headers)

#Print Response
print(response.text)

GET请求 - 在使用上面的承载令牌时获取数据

#import requests library for making REST calls
import requests

#specify url
url = 'YOUR URL GOES HERE'
token = "THIS WAS WHERE I STORED MY TOKEN"

headers = {'Authorization': 'Bearer ' + token}

response = requests.get(url, headers=headers)
#Print Response
print (response.text)