POST 请求 .txt 文件

POST request for .txt file

我不会写一个函数,可以通过POST-request.

获取一个.txt文件

我有一个包含短语的 .txt 文件:Hello World!

服务器端:

from fastapi import FastAPI, File
from starlette.requests import Request
import io

app = FastAPI()
@app.post("/post_text_file")
def text_function(request: Request,
            file: bytes = File(...)):
    text = open(io.BytesIO(file), "r").read()
    return text  # Hello World!

客户端:

import requests

url = 'http://localhost:8000/post_text_file'
r = requests.post(url,data=open('Hello World.txt'))

在 运行 命令 uvicorn main:app 和 运行 客户端代码后,我得到下一个答案:

在客户端:{'detail':'There was an error parsing the body'}

在服务器端:"POST /post_text_file HTTP/1.1" 400 错误请求

requests.post 有一个 files 参数,您可以使用它来发送这样的文件:

import requests

url = "http://localhost:8000/post_text_file"
fin = open('Hello World.txt', 'rb')
files = {'file': fin}
try:
    r = requests.post(url, files=files)
finally:
    fin.close()

通常,随请求发送的文件可以通过 request.files 作为上传文件的字典访问。

如果您没有安装 python-multipart,就会发生这种情况。所以请确保您已完成:

pip install python-multipart