我正在尝试使用Mailman 3 REST API,但我需要在Java类中从Spring的Rest模板中调用它,或者从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
我想提出相同的请求,但是通过Postman。为此,我使用了网址" 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
但请求状态仅显示" pending"我没有得到任何答复。 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。我还想知道,如果我在形成Postman请求时犯了一个特别的错误,但我怎么能使用Spring的Rest模板做同样的事情。
任何帮助将不胜感激。谢谢
答案 0 :(得分:0)
要修复curl命令,请单独使用-H参数。
curl -H "Content-Type: application/x-form-urlencoded" -H "Authorization: Basic cmVzdGFkbWluOnJlc3RwYXNz" http://localhost:8001/3.0/domains