我有这样的卷曲请求:
curl -X POST http://mdom-n-plus-1.nonprod.appsight.us:8081/mesmerdom/v1/getByScreen -F "data={\"screen\":{\"screen-id\":\"57675\"}}"
我试图通过使用类似这样的东西将其转换为python:
import requests
import json
url = "http://mdom-n-plus-1.nonprod.appsight.us:8081/mesmerdom/v1/getByScreen"
payload = {"data": json.dumps({"screen":["screen-id", "57675"]})}
req = requests.post(url, data=payload)
print (req.text)
但出现以下错误:
io.finch.Error$NotPresent: Required param 'data' not present in the request.
在这种情况下,将bash curl调用转换为python请求的最佳方法是什么?
欢迎来到stackoverflow.com
。
-F
curl
表示form-encoded
数据的切换。
传递data
使,Content-Type: x-www-form-urlencoded
但是服务器似乎正在接受,Content-Type: multipart/form-data
因此我们也需要传递files
。但是由于服务器正在内部查找实际数据,因此form
我们也需要传递data
。所以这应该工作:
import requests
url = "http://mdom-n-plus-1.nonprod.appsight.us:8081/mesmerdom/v1/getByScreen"
payload = { 'data' : '{"screen" : {"screen-id": "57675"}}'}
req = requests.post(url, files=dict(data='{"screen":{"screen-id":"57675"}}'), data=payload)
print (req.text)
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句