Как вызвать POST API с помощью телесных тележек в angular [вызвать ошибку 422 (необрабатываемый объект)]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как вызвать POST API с помощью телесных тележек в angular [вызвать ошибку 422 (необрабатываемый объект)]

Сообщение Anonymous »

Я изо всех сил пытаюсь использовать Post API с помощью FastAPI, Angular
при использовании функции HttpClient.post. Проблема заключается в получении параметров в серверной части FastAPI: параметры не отображаются и возникает ошибка 422 (необрабатываемый объект).
  • КОД API Mybackend (FastAPI-Python):

Код: Выделить всё

from typing import Optional
from pydantic import BaseModel
class UsersLoginRequest(BaseModel):
username: str
password: str

@users_router.post("/login")
def login(body: UsersLoginRequest):
pass
  • Запустить серверную часть:

Код: Выделить всё

Uvicorn running on http: //127.0.0.1:3101 (Press CTRL+C to quit)
Started reloader process [36366] using WatchFiles
Started server process 363701
Waiting for application startup.
Application startup complete
  • Вызов API с использованием примера Postman cURL:

Код: Выделить всё

curl --location --request POST 'http://127.0.0.1:3101/users/login' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data-raw '{
"username": "admin",
"password": "admin"
}'

Код: Выделить всё

# See trafic ...

127.0.0.1:54336 - "POST /users/login HTTP/1.1" 200 OK
попробуйте тот же API, используя интерфейс Angular, вызвав this.http.post:

Код: Выделить всё

import { HttpClient  ,HttpHeaders, HttpParams} from '@angular/common/http';

constructor( private http:HttpClient )

signIn(): void
{
const headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');

let params = new HttpParams()
.append('username', "admin")
.append('password', "admin")

debugger
this.http.post('http://127.0.0.1:3101/users/login',params   ,{ headers: headers }
).subscribe({
error: (respose:any) => {
debugger
},    // errorHandler
next: (respose:any) => {
debugger
},     // nextHandler
})

}

бэкэнд-трафик:

Код: Выделить всё

INFO:     127.0.0.1:62969 - "POST /users/login HTTP/1.1" 422 Unprocessable Entity
попробуйте изменить место параметра

Код: Выделить всё

import { HttpClient  ,HttpHeaders, HttpParams} from '@angular/common/http';

constructor(
private http:HttpClient
)

signIn(): void
{

const headers = new HttpHeaders();
headers.append('Content-Type', 'application/json');

let params = new HttpParams()
.append('username', "admin")
.append('password', "admin")

debugger
this.http.post('http://127.0.0.1:3101/users/login',null   ,{ headers: headers, params: params }
).subscribe({
error: (respose:any) => {
debugger
},    // errorHandler
next: (respose:any) => {
debugger
},     // nextHandler
})

}

бэкэнд-трафик:

Код: Выделить всё

INFO:     127.0.0.1:62969 - "POST /users/login HTTP/1.1" 422 Unprocessable Entity
**Я НЕ ЗНАЮ, ЧТО Я ПРОПАВАЛ!!!!**
Я пытаюсь получить телесные коляски в Python - FastAPI
для протокола:
Я пробовал этот слот, он не работал
Ошибка в Angular с HTTPparams 422 (Необрабатываемый объект) и FastAPI
вы можете увидеть пример выше...

Подробнее здесь: https://stackoverflow.com/questions/751 ... processabl
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»