我正在尝试使用Mule Studio轮询RSS源,但是使用Mule应用程序中的http outbound-endpoint轮询信息是不成功的。我以前遇到过同样的问题,使用http inbound-endpoint和同一个站点但是能够通过将用户代理分配给MuleESB来解决问题,方法是将地址设置为
http://www.theaggie.org/feed/?User-Agent=MuleESB
但是,现在使用http outbound-endpoint,我无法轮询Feed并获得403 Forbidden错误。我的XML流程是
<flow name="aggregatorFlow1" doc:name="aggregatorFlow1">
<poll>
<processor-chain>
<set-variable variableName="httpMessages" value="#[[]]" />
<http:outbound-endpoint exchange-pattern="one-way" address="http://www.theaggie.org/feed/?User-Agent=MuleESB" method="GET" />
<expression-component>httpMessages.add(message.payloadAs(java.lang.String))</expression-component>
</processor-chain>
</poll>
<logger level="INFO" message="#[httpMessages]" />
</flow>
如果我将交换模式更改为请求 - 响应,则记录器将只输出[]。我对使用相同xml代码的其他网站没有任何问题。
答案 0 :(得分:1)
显然,exchange-pattern
应为request-response
,因为您似乎关心响应的有效负载。
尝试在http:outbound-endpoint
之前添加以下内容:
<set-property propertyName="User-Agent" value="MuleESB" />