尝试使用发送消息 API 端点时出现 405 错误

405 Error when trying to use the Send Message API endpoint

我正在使用 Python 的请求包,代码如下:

APIKEY = "XXX"
url = 'https://services.kommunicate.io/rest/ws/message/v2/send HTTP/1.1'

myobj = {
    'groupId': "xxx",
    'message':'Hello',
    "fromUserName":'yyy'
        }

headers = {
    'Api-Key':APIKEY,
}
response = requests.post(url, data = myobj,headers=headers)

并给我以下错误:

'{"status":"error","errorResponse":[{"errorCode":"AL-MA-01","description":"method not allowed","displayMessage":"Request method \u0027POST\u0027 not supported"}],"generatedAt":1591385905404}'

我做错了什么?

代码几乎没有问题。
1. HTTP/1.1 不是 URL.
的一部分 2. 在requests包中,为了向服务器传递一个JSON,有多种方法可以做到。

一个。使用 requests.post 方法中提供的 json 参数向服务器发送 JSON 数据,类似于下面的代码:

import requests

APIKEY = "XXX"
url = 'https://services.kommunicate.io/rest/ws/message/v2/send'
myobj = {
    'groupId': "xxx",
    'message': 'Hello',
    "fromUserName": 'yyy'
}

headers = {'Api-Key': APIKEY}

response = requests.post(url, json=myobj, headers=headers)

b。在 Headers 中添加 "Content-Type": "application/json" 然后首先将 json 数据转储到字符串,然后将其发送到服务器。

import requests
import json 

APIKEY = "XXX"
url = 'https://services.kommunicate.io/rest/ws/message/v2/send'
myobj = {
    'groupId': "xxx",
    'message': 'Hello',
    "fromUserName": 'yyy'
}

headers = {
    'Api-Key': APIKEY,
    "Content-Type": "application/json"
}

myobj = json.dumps(myobj)

response = requests.post(url, data=myobj, headers=headers)

此外,请检查 Difference between data and json parameters in python requests package