2015-10-12 46 views
2

我是Python開發新手。我只需要編寫一個簡單的應用程序來調用我們的REST API,並且可以測試GET,PUT,POST,DELETE。我在Visual Studio 2015中使用Python開發工具。我有第一個問題是我應該在運行時將此應用程序附加到哪個進程,以便我可以實際看到結果的輸出?下一個問題是基於下面的代碼,有什麼我缺少發出基本的POST請求?我已經刪除了我的實際URL,用戶名和密碼,但是,我測試了SwaggerUI,並且我得到了一個Web令牌,所以我擁有正確的URL和憑證。如何爲RESTApi功能設置Python

import urllib 
import requests 


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

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

print(data) 
+1

如果您使用像Flask這樣的框架,您將節省很多麻煩。請求也捆綁在其中。看看:http://flask.pocoo.org/ – idjaw

回答

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) 
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))