Estoy tratando de enviar una solicitud de publicación usando un script de python y quiero almacenar la respuesta. A continuación se muestran los dos archivos. Todo está bien cuando hago lo mismo con node.js, pero cuando uso un script de python en lugar de node.js, aparece este error. ¿Alguien sabe por qué? No puedo encontrar la razón adecuada por la que aparece este error.
en la solicitud enviar nombre y apellido y en respuesta obtendré el nombre completo
Código Node.js (usado fastify)
const conn=require('fastify')({ logger:true }) const PORT=80 const axios = require('axios') //take first and last name as request and in response return full name conn.post('/user',async(req,res)=>{ const user=req.body const fullname=user.first_name + user.last_name console.log(full) res.json(fullname) }) const start_server=async()=>{ try { await conn.listen(PORT) console.log(`server start at PORT ${PORT}`) } catch(error) { conn.log.error(error) process.exit(1) } } start_server()mi secuencia de comandos de Python
import requests import json API_ENDPOINT = 'http://localhost:80/user' headers = {'Content-type': 'application/json'} data = { "first_name": "jayanta", "last_name": "lahkar" } r = requests.post('http://localhost:80/user', data) print(r.json())Mensaje de error
{'statusCode': 415, 'code': 'FST_ERR_CTP_INVALID_MEDIA_TYPE', 'error': 'Unsupported Media Type', 'message': 'Unsupported Media Type: application/x-www-form-urlencoded'}Probar:
r = requests.post(url = 'http://localhost:80/user', headers=headers, data=data) print(r.json())en el script de python:
usar json
r = requests.post(url = 'http://localhost:80/user', headers=headers, json=data)en el script del nodo:
usar el método .send
const {first_name, last_name} =req.body; const fullname={first_name, last_name}; res.send(fullname);aquí está la respuesta a su error:
axios.post('url', data, { headers: { 'Content-Type': 'application/json', } }