使用Mule ESB http:请求端点省略端口

时间:2015-11-24 17:08:54

标签: http mule

我正在尝试使用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。

2 个答案:

答案 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,这是默认端口,它应该可以工作。