2015-07-03 46 views
0

我有這個數據,我將它轉換爲json,然後我使用數據作爲參數調用Java API,但它不工作。Django:在params中使用json調用rest API不起作用

data = {"clientId": "CAxsRoZcH063XwCtHCVZItVq0Hga", "clientSecret": "ifs6nU9ZZQitOOqYr5Hy579sa28a", "username":"doctor1","password":"fistar"} 
json_data = json.dumps(data) 
user = requests.post(url='http://147.27.50.130:8080/EHR_SE/UserLogin', params=json_data) 

當我改變PARAMS到它的工作

user = requests.post(url='http://147.27.50.130:8080/EHR_SE/UserLogin', params="data=%7B%22clientId%22%3A%22CAxsRoZcH063XwCtHCVZItVq0Hga%22%2C%22clientSecret%22%3A%22ifs6nU9ZZQitOOqYr5Hy579sa28a%22%2C%22username%22%3A%22doctor1%22%2C%22password%22%3A%22fistar%22%7D") 

HTML字符串你有什麼想法如何將這個JSON字符串轉換爲正確的格式?

澄清API正在接受json字符串。當我使用下面的代碼從瀏覽器調用API時,它正在工作。

<form action="UserLogin" method="POST"> 
<input type='text' name='data' value='{"clientId":"CAxsRoZcH063XwCtHCVZItVq0Hga","clientSecret":"ifs6nU9ZZQitOOqYr5Hy579sa28a","username":"doctor1","password":"fistar"}'> 
<input type="submit" value="Identification"> 

謝謝先進!

+0

如果使用JSON我相信你想使用'數據= json_data'關鍵字參數爲'request.post()'。 [相關文檔](http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests) – IanAuld

回答

0

我找到了解決方案。

我應該在關鍵字中包含關鍵字data=

提出的解決方案是:

user = requests.post(url='http://147.27.50.130:8080/EHR_SE/UserLogin', params="data="+json_data) 
+0

這可能有效,但我認爲你沒有正確地使用它。它應該只是'requests.post(url ='http://147.27.50.130:8080/EHR_SE/UserLogin',data = json_data)' – IanAuld

+0

@IanAuld早些時候嘗試過您的建議解決方案,但不幸的是沒有工作。 – zinon