我正在尝试使用Mule ESB http:request
端点从 api.crossref.org 获取数据。我发现如果包含端口号,我会得到404。也就是说,此请求成功:
GET http://api.crossref.org/works?filter=doi%3A10.1080%2F10573560601158461&sort=score&order=desc HTTP/1.1
Host: api.crossref.org
<blank line>
<blank line>
但是这个失败了:
GET http://api.crossref.org:80/works?filter=doi%3A10.1080%2F10573560601158461&sort=score&order=desc HTTP/1.1
Host: api.crossref.org:80
<blank line>
<blank line>
有没有办法强制Mule省略标题中的端口号?这也适用于HTTPS和443。
答案 0 :(得分:2)
您可以尝试手动添加Host标头,这意味着在请求构建器中:
<http:request config-ref="HTTP_Request_Configuration" path="test" method="GET">
<http:request-builder>
<http:header headerName="Host" value="api.crossref.org" />
</http:request-builder>
</http:request>
服务器应该使用端口处理Host标头,但不幸的是有些没有。 HTH
答案 1 :(得分:0)
只需尝试端口80用于http和端口443用于https和您的URL,这是默认端口,它应该可以工作。