首页 > 解决方案 > 带有上传文件和标头的 HTTP Post 请求适用于 Postman,但不适用于 python

问题描述

如果我上传邮递员发送的有效负载,它会显示没有文件上传错误,并且我尝试通过添加新的自定义有效负载对代码进行的任何更改仅显示相同的错误。

@app.route('/Upload', methods=["POST"])
def upload(sql) :
name = sql["name"]
version = sql["version"]
url = "https://dod-orasenatdhubsblue02.blockchain.ocp.oraclecloud.com:443/console/admin/api/v1/chaincodes/upload"


with open('C:\\Users\\Ravi\\Documents\\chaincodes\\generic\\generic.go', "rb") as file:
    payload = file.read() 

    values = {
    'Content-Disposition' : 'form-data',
    'chaincodeId' : 'test30',
    'chaincodeVersion' : 'v1',
    'chaincodeIndexes' : '[]',
    'myfile' :{
        'value': 'generic.go',
        'options':  {
            'filename' : file ,
            'Content-Type' : False ,
            'type' : 'file'
        }
    }
    }


    headers = {
    'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
    'content-Type': "application/octet-stream",
    'Authorization': "Basic YXBpLnVzZXI6UXdlcnR5MTIzNDU2QA==",
    }   

    response = requests.post(url,data=values,headers=headers)

    print(response.text)

错误跟踪:

127.0.0.1 - - [07/Mar/2019 20:21:41] "POST /blockchain/Upload HTTP/1.1" 500 -
* Detected change in 'C:\\Users\\Ravi\\Documents\\upload.py', reloading
* Restarting with stat
* Debugger is active!
* Debugger PIN: 903-210-066
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
{"respMesg":"no file uploaded"}

标签: pythonuploadpostman

解决方案


我不知道这是否是错误,但您缺少网址末尾的语音标记。

url = " https://dod-orasenatdhubsblue02.blockchain.ocp.oraclecloud.com:443/co

您可以看到 url 在开头有语音标记,但在结尾没有。


推荐阅读