Python / Requests - Impossible d'envoyer POST correctement, bien qu'il fonctionne dans Postman

Nov 16 2020

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. Je vous remercie.

Réponses

1 Sparrow_ua Nov 16 2020 at 00:36

Peut-être un problème avec les données. Non?

data = {"userId": f"{message.chat.username}", "chatId": f"{message.chat.id}"}

au lieu de

data = {"userId": "message.chat.username", "chatId": "message.chat.id"}
1 vgeorge Nov 16 2020 at 00:01

Pour le facteur, il dispose déjà d'une fonctionnalité permettant de générer du code pour n'importe quel langage de programmation, il vous suffit de cliquer sur le bouton de code et vous obtiendrez le code.

il vous suffit de cliquer sur le bouton de code à droite de l'image

1 AttilaViniczai Nov 16 2020 at 00:31

Utilisez un jsonparamètre au lieu de 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)