如何在 post 请求中使用特殊字符(重音符号)
How to use special characters (accents) on post requests
我是新来的。
我通过这个post找到了这个论坛,基本上OP和我有同样的问题,但答案对我不起作用。
我想要的是发送一个 post 请求,该请求通过 API 发送一条 whatsapp 消息,但是如果我尝试在字母上使用重音符号,则发送的消息将完全损坏( see the example here) 带有问号的奇怪菱形应该是一个“é”字符。
所以,我的问题是:如何通过 whatsapp 发送“é”?我是不是搞错了编码之类的?
这是我要执行的操作的代码:
def send_message():
headers = {
'Content-Type': 'application/json;charset=utf-8',
'x-maytapi-key': API_TOKEN,
}
url = INSTANCE_URL + "/" + PRODUCT_ID + "/" + PHONE_ID + "/sendMessage"
data = '{ "message": "Essa mensagem \xe9 um teste, por favor desconsidere", "to_number": "+55XXXXXXXXXXX", "type": "text" }'
response = requests.post(url, headers=headers, data=data)
上面的代码发送了消息,但消息到达时如图所示(奇怪的钻石)
现在这是我在看到开头提到的论坛 post 后尝试过的方法:
def send_message():
headers = {
'Content-Type': 'application/json',
'x-maytapi-key': API_TOKEN,
}
url = INSTANCE_URL + "/" + PRODUCT_ID + "/" + PHONE_ID + "/sendMessage"
data = '{ "message": "Essa mensagem \xe9 um teste, por favor desconsidere", "to_number": "+55XXXXXXXXX", "type": "text" }'.encode('latin-1')
response = requests.post(url, headers=headers, data=data)
print(response.text)
不幸的是,结果是一样的。
您可以尝试在执行请求时使用 json=
参数而不是 data=
。另外,首先尝试删除 Content-Type
header:
def send_message():
headers = {
# "Content-Type": "application/json;charset=utf-8",
"x-maytapi-key": API_TOKEN,
}
url = INSTANCE_URL + "/" + PRODUCT_ID + "/" + PHONE_ID + "/sendMessage"
data = {
"message": "Essa mensagem é um teste, por favor desconsidere",
"to_number": "+55XXXXXXXXXXX",
"type": "text",
}
response = requests.post(url, headers=headers, json=data)
我是新来的。
我通过这个post找到了这个论坛,基本上OP和我有同样的问题,但答案对我不起作用。
我想要的是发送一个 post 请求,该请求通过 API 发送一条 whatsapp 消息,但是如果我尝试在字母上使用重音符号,则发送的消息将完全损坏( see the example here) 带有问号的奇怪菱形应该是一个“é”字符。
所以,我的问题是:如何通过 whatsapp 发送“é”?我是不是搞错了编码之类的?
这是我要执行的操作的代码:
def send_message():
headers = {
'Content-Type': 'application/json;charset=utf-8',
'x-maytapi-key': API_TOKEN,
}
url = INSTANCE_URL + "/" + PRODUCT_ID + "/" + PHONE_ID + "/sendMessage"
data = '{ "message": "Essa mensagem \xe9 um teste, por favor desconsidere", "to_number": "+55XXXXXXXXXXX", "type": "text" }'
response = requests.post(url, headers=headers, data=data)
上面的代码发送了消息,但消息到达时如图所示(奇怪的钻石)
现在这是我在看到开头提到的论坛 post 后尝试过的方法:
def send_message():
headers = {
'Content-Type': 'application/json',
'x-maytapi-key': API_TOKEN,
}
url = INSTANCE_URL + "/" + PRODUCT_ID + "/" + PHONE_ID + "/sendMessage"
data = '{ "message": "Essa mensagem \xe9 um teste, por favor desconsidere", "to_number": "+55XXXXXXXXX", "type": "text" }'.encode('latin-1')
response = requests.post(url, headers=headers, data=data)
print(response.text)
不幸的是,结果是一样的。
您可以尝试在执行请求时使用 json=
参数而不是 data=
。另外,首先尝试删除 Content-Type
header:
def send_message():
headers = {
# "Content-Type": "application/json;charset=utf-8",
"x-maytapi-key": API_TOKEN,
}
url = INSTANCE_URL + "/" + PRODUCT_ID + "/" + PHONE_ID + "/sendMessage"
data = {
"message": "Essa mensagem é um teste, por favor desconsidere",
"to_number": "+55XXXXXXXXXXX",
"type": "text",
}
response = requests.post(url, headers=headers, json=data)