簡體   English   中英

curl 到 python 用於發布請求

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM