【问题标题】:python requests - post files multipart (http-status-code-400)python请求 - 多部分发布文件(http-status-code-400)
【发布时间】:2021-10-21 12:07:23
【问题描述】:

使用请求 2.26.0.我想将文件发布到服务器。

下面带有fastapi swagger ui的结果代码很好, 但我从 python 代码中得到: {"detail":"解析正文出错"}

@router.post("/send/{email}")
async def send(email: str , files: List[UploadFile] = File(...)):
    return user.send(email, files)

和发送功能:

def send(email: str, files):
    for file in files:
        with open(f'{file.filename}', "wb") as buffer:
            shutil.copyfileobj(file.file, buffer)
    print(email)
    send_email(email, 'F:/PROJECT/scan2excel/input/ss.xls')
    return {'file_name':'good'}

我从主要测试:

def upload_data(self, files_paths):
    url = 'http://localhost:8000/user/send/'+str(self.email)
    headers = {'Content-Type':'multipart/form-data; charset=utf-8; boundary=---- WebKitFormBoundary9JTSxAotKGVAuzQF'}
    f={"file": ("filename", open('F:/PROJECT/scan2excel/input/1.jpg', "rb"), "image/jpeg")}
    response = requests.post(url, files=f, headers=headers) 
      

【问题讨论】:

  • 为什么要自己设置边界头?我还猜测 JPEG 文件没有 UTF-8 作为其字符集?
  • 我有同样的错误:headers = {'Content-Type':'multipart/form-data'}
  • 您根本不必自己操作标题;让请求为您完成。

标签: python file-upload python-requests multipartform-data fastapi


【解决方案1】:

fastapi swagger ui 上的结果:

https://ibb.co/XyGtXMK

回复:

https://ibb.co/k0fYKQG

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 2012-11-24
    • 2016-05-22
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    相关资源
    最近更新 更多