при использовании функции 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
Код: Выделить всё
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