Отправть в rocket.chat сообщение на русском через api
Пытаюсь отправить сообщение в один из чатов следующим образом:
import requests
message='Hi!'
headers = {
'X-Auth-Token': 'sometoken',
'X-User-Id': 'someid',
'Content-Type': 'application/json; charset=utf-8',
}
data = '{"message": { "rid": "roomid", "msg": "%s"}}'%(message))
send_msg = requests.post('https://rocket.someserver.ru/api/v1/chat.sendMessage', headers=headers, data=data)
print(send_msg)
print (send_msg.text)
Если отправлять сообщение на английском, то всё работает как нужно, но если попытаться отправить сообщение на русском, выходит следующая ошибка:
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 50-55: Body ('Привет') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.
Если сделать так, как предлагает сам python, поменяв %(message) на %(message.encode('utf-8')), то появляется другая ошибка:
<Response [400]>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Bad Request</pre>
</body>
</html>
Если я правильно понимаю ошибку, то дело в том, что даже если поменять кодировку, он всё равно не может понять, что ему пытаются отправить?