[英]curl to python for post request
我想使用 request 或 urllib 将我的 curl 请求“翻译”成 python。
我尝试发布文件。
我的 curl 请求是:
curl -X POST -H "Content-Type: multipart/form-data" -H "Authorization: Bearer $1" -F "data=@$2;filename=$3" --cert certificateprivate.pem --cacert MyDigiCertSHA2.crt.pem <my_url>
我尝试了下面的代码(不起作用,响应 400)
def upload_file(token,file_path):
ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH,cafile='MyDigiCertSHA2.crt.pem')
ctx.load_cert_chain(certfile='certificateprivate.pem')
url = <my_url>
hdr = {"Content-Type": "application/json","Authorization":"Bearer "+token}
data = '{"filterList":[{}]}'
with open(file_path, 'rb') as f:
from urllib import request, parse
data = parse.urlencode( {'filename':file_path,"data": f.read()}).encode()
req = request.Request( url, data = data,headers=hdr)
resp = request.urlopen(req, context=ctx)
content = resp.read()
data = json.loads(content.decode('utf-8'))
print(data)
curl 命令具有"Content-Type: multipart/form-data"
,但您的 python 代码具有"Content-Type": "application/json"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.