我正在尝试使用 Mailman 3 REST API,但我需要从 java 类中的 Spring 的 Rest Template 调用它,或者从 Postman 进行测试。在 Python 中,我可以通过以下方式调用 API:
>>> from httplib2 import Http
>>> headers = {
... 'Content-Type': 'application/x-www-form-urlencode',
... 'Authorization': 'Basic cmVzdGFkbWluOnJlc3RwYXNz',
... }
>>> url = 'http://localhost:8001/3.0/domains'
>>> response, content = Http().request(url, 'GET', None, headers)
>>> print(response.status)
200
我想提出同样的要求,但通过邮递员。为此,我使用了 URL“ http://127.0.0.1:8001/3.0/domains ”。我在标题中添加了 2 个字段,预览如下所示:
GET /3.0/lists HTTP/1.1
Host: 127.0.0.1:8001
Content-Type: application/x-form-urlencode
Authorization: Basic cmVzdGFkbWluOnJlc3RwYXNz
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
但请求状态只显示“待处理”,我没有收到任何回复。Mailman 在 python virtualenv 上运行。
我还尝试在终端中运行以下命令:
curl --header "Content-Type: application/x-form-urlencoded, Authorization: Basic cmVzdGFkbWluOnJlc3RwYXNz" http://localhost:8001/3.0/domains
但输出是:
{
"title": "401 Unauthorized",
"description": "The REST API requires authentication"
}
我被困在这一点上,因为我不希望使用 Mailman 的 Web UI postorius,但希望从 java 类调用 REST API。我也想知道,如果我在形成我的邮递员请求时犯了一个特别的错误,但是我如何使用 Spring 的 Rest Template 来做同样的事情。
任何帮助,将不胜感激。谢谢