Python / Requests - Não é possível enviar POST corretamente, apesar de estar funcionando no Postman
Nov 16 2020
todos. Eu tenho o seguinte 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)
A resposta é 400. Mas quando eu uso o Postman com JSON bruto: {"userId": "xxx", "chatId": "xxx"}
Isso me dá 200.
Não consigo entender a diferença. Obrigado.
Respostas
1 Sparrow_ua Nov 16 2020 at 00:36
Talvez um problema com os dados. Não?
data = {"userId": f"{message.chat.username}", "chatId": f"{message.chat.id}"}
ao invés de
data = {"userId": "message.chat.username", "chatId": "message.chat.id"}
1 vgeorge Nov 16 2020 at 00:01
Para o carteiro, já possui um recurso para gerar código para qualquer linguagem de programação basta clicar no botão código e você obterá o código.
basta clicar no botão de código do lado direito da imagem
1 AttilaViniczai Nov 16 2020 at 00:31
Use o jsonparâmetro em vez de data. Observe que eles não são iguais: Diferença entre dados e parâmetros json no pacote de solicitações python .
answer = requests.post(url, json=data, headers=headers)
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas