Python / 요청-Postman에서 작동하지만 POST를 제대로 보낼 수 없습니다.

Nov 16 2020

여러분. 다음 코드가 있습니다.

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)

답은 400입니다.하지만 원시 JSON과 함께 Postman을 사용하는 경우 : { "userId": "xxx", "chatId": "xxx"}

그것은 나에게 200을 준다.

차이를 이해할 수 없습니다. 감사합니다.

답변

1 Sparrow_ua Nov 16 2020 at 00:36

데이터 문제 일 수 있습니다. 아니?

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

대신에

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

우편 배달부에게는 이미 모든 프로그래밍 언어에 대한 코드를 생성하는 기능이 있습니다. 코드 버튼을 클릭하기 만하면 코드를 얻을 수 있습니다.

이미지 오른쪽에있는 코드 버튼을 클릭하면됩니다.

1 AttilaViniczai Nov 16 2020 at 00:31

json대신 매개 변수를 사용하십시오 data. python requests package의 data와 json 매개 변수의 차이점 은 동일하지 않습니다 .

answer = requests.post(url, json=data, headers=headers)