【问题标题】:post reguest '422 Unprocessable Entity' with fast api使用 fastapi 发布请求“422 无法处理的实体”
【发布时间】:2021-01-07 15:21:50
【问题描述】:

我有一个快速的 api 应用程序,我想要一个发布请求。

from pydantic import BaseModel
from fastapi import FastAPI


class Data(BaseModel):
    num: str

app = FastAPI()

@app.post("/set/")
def set_param(data: Data):
    return data

当我从另一个文件发送请求时:

import requests,json

req = requests.post('http://0.0.0.0:5000/set/',data={'num':'1'}).json()

我有一个错误:

INFO:     127.0.0.1:54236 - "POST /set/ HTTP/1.1" 422 Unprocessable Entity

我不知道应该改变什么来消除这个错误。

【问题讨论】:

    标签: python python-requests request fastapi


    【解决方案1】:

    您没有发送有效的 JSON

    您应该使用json 而不是data

    json={"num":"1"}
    

    这样使用

    req = requests.post('http://0.0.0.0:5000/set/',json={'num':'1'}).json()
    

    或者你可以使用json.dumps()

    req = requests.post('http://0.0.0.0:5000/set/', json.dumps(data={'num':'1'})).json()
    

    【讨论】:

    • 我认为 json.dumps 选项应该是:req = requests.post('0.0.0.0:5000/set', data=json.dumps({'num':'1'})).json( ) 但是在我的情况下,这在使用 json 参数时不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2022-10-15
    • 2022-10-07
    • 2021-03-15
    • 2018-04-17
    • 2020-05-12
    相关资源
    最近更新 更多