1

我正在尝试使用 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 来做同样的事情。

任何帮助,将不胜感激。谢谢

4

1 回答 1

1

要修复 curl 命令,请单独使用 -H 参数。

curl -H "Content-Type: application/x-form-urlencoded" -H "Authorization: Basic cmVzdGFkbWluOnJlc3RwYXNz" http://localhost:8001/3.0/domains
于 2016-03-17T06:36:57.220 回答