toutes les personnes. J'ai le code suivant:
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 réponse est 400. Mais lorsque j'utilise Postman avec JSON brut: {"userId": "xxx", "chatId": "xxx"}
Cela me donne 200.
Je ne comprends pas la différence. Merci.
3 Réponses :
Utilisez le paramètre json
au lieu des data
. Notez qu'ils ne sont pas les mêmes: Différence entre les paramètres data et json dans le package de requêtes python .
answer = requests.post(url, json=data, headers=headers)
Peut-être un problème avec les données. Non?
data = {"userId": "message.chat.username", "chatId": "message.chat.id"}
au lieu de
data = {"userId": f"{message.chat.username}", "chatId": f"{message.chat.id}"}
Bonne prise, je ne l'ai pas remarqué au premier coup d'œil.
Avez-vous essayé d'utiliser
answer = requests.post(url, data=json.dumps(data), headers=headers)
au lieu de votre code actuel? N'oubliez pas non plus d'import json