0

我正在使用带有以下代码的 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}'

我究竟做错了什么?

4

1 回答 1

2

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

一个。使用方法中json提供的参数requests.post将 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)

湾。在标头中添加"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)

另外,请检查python 请求包中数据和 json 参数之间的差异

于 2020-06-08T07:45:30.573 回答