En el lado del servidor, utilicé el marco FastAPI para crear la API.
En Angular, creé un servicio para enviar una solicitud HTTP Post como la siguiente:
runTest( questionId: string, language_name: string, code: string ): Observable<any> { console.log(code) //use http params for query parameters let params = new HttpParams().set('language',language_name); let apiUrl = `${this.BASE_URL}/question/${questionId}/run_test` ; return this.http.post<any>(apiUrl,code , { params: params }) } Coloco el code como cuerpo de la solicitud HTTP Post. Antes de enviar la solicitud, console.log(code) para verificar el contenido del code . El contenido del code es un tipo de string y tiene el siguiente aspecto:
def add(a:float,b:float) -> float: sum = a+b return sumEn el lado del servidor, la API correspondiente que escribí mediante el marco FastAPI como la siguiente:
@router.post("/{id}/run_test") async def run_test(id:str=Path(...), language: str = Query(...), code: str = Body(...)): print(code) Pero code que obtuve cuando print(code) es:
def add(a:float,b:float) -> float: tong = a+b return tong Como puede ver, el contenido del code cuando envié el front-end y el contenido del code cuando llegué al lado del servidor es diferente.
No sé qué sucede durante el proceso de envío de la solicitud HTTP Post al lado del servidor. Por favor, ayúdenme. Y lo siento por mi inglés.