Python / Requests: no se puede enviar POST correctamente, a pesar de que funciona en Postman
Nov 16 2020
todos. Tengo el siguiente código:
url = "url"
headers = {'Content-type': 'application/json'}
bot = telebot.TeleBot('xxx')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, message.chat.id)
bot.send_message(message.chat.id, message.chat.username)
data = {"userId": "message.chat.username", "chatId": "message.chat.id"}
answer = requests.post(url, data=data, headers=headers)
print(answer)
La respuesta es 400. Pero cuando uso Postman con JSON sin formato: {"userId": "xxx", "chatId": "xxx"}
Me da 200.
No puedo entender la diferencia. Gracias.
Respuestas
1 Sparrow_ua Nov 16 2020 at 00:36
Quizás problema con los datos. ¿No?
data = {"userId": f"{message.chat.username}", "chatId": f"{message.chat.id}"}
en vez de
data = {"userId": "message.chat.username", "chatId": "message.chat.id"}
1 vgeorge Nov 16 2020 at 00:01
Para el cartero, ya tiene una función para generar código para cualquier lenguaje de programación, solo necesita hacer clic en el botón de código y obtendrá el código.
simplemente haga clic en el botón de código del lado derecho de la imagen
1 AttilaViniczai Nov 16 2020 at 00:31
Utilice jsonparámetro en lugar de data. Tenga en cuenta que no son lo mismo: diferencia entre datos y parámetros json en el paquete de solicitudes de Python .
answer = requests.post(url, json=data, headers=headers)