检查 Mule HTTP 连接器中用于请求的实际 URL

Check actual URL used for request in Mule HTTP Connector

我正在处理包含 <http:request> 元素的流程,但我不断收到意外的 404 响应。有没有办法让我检查所请求的实际 URL?

我在 Mule 中看不到任何方法可以做到这一点。我也尝试过使用 Fiddler 作为代理,但是对于从 Mule 开始的请求,无法在 Fiddler 中显示任何会话。

如果您使用的是 MAC,您可以试试 Wireshark。根据我的经验,Fiddler 确实没有捕获来自 Mule 的 HTTP 请求。

您可以使用像 CharlesProxy: http://www.charlesproxy.com/ 之类的代理,但您也可以只使用 log4j。如果您尝试将此添加到您的 log4j2 配置中:

    <AsyncLogger name="org.glassfish.grizzly" level="DEBUG" />
    <AsyncLogger name="org.asynchttpclient" level="DEBUG" />
    <AsyncLogger name="com.ning.http" level="DEBUG" />

对于使用 http:request 到 http://google.com 的 HTTP 请求,它会记录以下内容:

DEBUG 2015-07-14 13:18:17,416 [[test].test.worker.01] com.ning.http.client.providers.grizzly.GrizzlyConnectionsPool: [poll] uri [不存在 queue http://google.com:80]。 调试 2015-07-14 13:18:17,449 [[测试].http.requester.httprequest(1) SelectorRunner] com.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider: REQUEST: HttpRequestPacket ( 方法=获取 url=/ 查询=空 协议=HTTP/1.1 content-length=-1 headers=[ 主机=google.com:80 连接=keep-alive 接受=/ User-Agent=NING/1.0] )