以下是代码:
import requests
url = 'document_url/documents/batch'
payload = "[{...}, {....}]"
headers = {'Content-type': 'application/json'}
response = requests.post(url, headers=headers, data=payload)
print('response code:', response.status_code)
print('response body:', response.json())
以下产量:
response code: 403
response body: {'message': 'Request forbidden by administrative rules', '__type': 'CloudSearchException'}
安全规则也对所有人开放
可能是什么问题?
根据讨论论坛:https://forums.aws.amazon.com/thread.jspa?threadID=148917
文档网址应为:
document_url/2013-01-01/documents/batch
发到上述网址后的回复:
{
"status": "success",
"adds": 1,
"deletes": 0
}
这完全是由于使用文档端点并添加 API 版本,如下所示。
由于您尝试将数据插入云搜索,因此您需要使用 AWS 提供给您的云搜索的文档端点。
后面需要跟API版本如下:
https://doc-xxxxx.zzzz.cloudsearch.amazonaws.com/2013-01-01/documents/batch
同时也要注意添加内容类型,否则最终可能会出现
HTTP 415 Unsupported Media Type
错误。
addRequestHeader("Content-Type", "application/xml");