gpt4 book ai didi

java - 在Mule中,我如何在不改变原始输出流的情况下记录http响应

转载 作者:行者123 更新时间:2023-11-30 04:15:51 25 4
gpt4 key购买 nike

我的 Mule 将对我的客户端进行 HTTP 调用和响应,我想记录 HTTP 调用结果,例如状态代码和响应正文。起初我记录了 #[payload],但它是一个流,我知道 可以工作,但我不想更改响应,所以我将转换器放入丰富器中,但是结果还是变了,为什么?

我的代码:

<http:outbound-endpoint exchange-pattern="request-response" address="http://#[payload]" doc:name="Call Service in Pool"/>
<enricher source="#[payload]" target="#[flowVars['responseBody']]" doc:name="Message Enricher">
<object-to-string-transformer doc:name="Object to String"/>
</enricher>
<logger level="INFO" doc:name="Log Response" message="response, http status: #[message.inboundProperties['http.status']], body: #[flowVars['responseBody']], org: #[payload]"/>

日志输出:

org.mule.api.processor.LoggerMessageProcessor: response, http status: 200, body: {"groupId":"group1", "formParam":"null"}, org: org.mule.transport.http.ReleasingInputStream@51dfd9b8

客户端没有收到正文:

HTTP/1.1 200 OK
Content-Type: application/json
Date: Sat, 24 Aug 2013 10:55:49 +0800
Server: Mule EE Core Extensions/3.4.0
X-MULE_SESSION: rO0ABXNyACNvcmcubXVsZS5zZXNzaW9uLkRlZmF1bHRNdWxlU2Vzc2lvbi7rdtEW7GGKAwAEWgAFdmFsaWRMAA1mbG93Q29uc3RydWN0dAAmTG9yZy9tdWxlL2FwaS9jb25zdHJ1Y3QvRmxvd0NvbnN0cnVjdDtMAAJpZHQAEkxqYXZhL2xhbmcvU3RyaW5nO0wAD3NlY3VyaXR5Q29udGV4dHQAJ0xvcmcvbXVsZS9hcGkvc2VjdXJpdHkvU2VjdXJpdHlDb250ZXh0O3hwAXB0ACRhZWFhODZjOS0wYzY4LTExZTMtYjhkZS0xNTQzZDIwNjFkNWZwc3IAJWphdmEudXRpbC5Db2xsZWN0aW9ucyRTeW5jaHJvbml6ZWRNYXAbc/kJS0s5ewMAAkwAAW10AA9MamF2YS91dGlsL01hcDtMAAVtdXRleHQAEkxqYXZhL2xhbmcvT2JqZWN0O3hwc3IAJG9yZy5tdWxlLnV0aWwuQ2FzZUluc2Vuc2l0aXZlSGFzaE1hcJ3R2e9nRc4AAwAAeHB3DD9AAAAAAAAQAAAAAHhxAH4ACXh4
X-MULE_ENCODING: UTF-8
Transfer-Encoding: chunked
Connection: close

最佳答案

这是流的标准行为:一旦您消耗了它,它就会被消耗,除非您重置它,否则它会保持消耗状态,并且没有更多可用数据。

您可以尝试在记录之前使用 mark() ,然后在记录之后使用 reset() (在 MEL 表达式组件中),但不能保证 Mule 生成的实际流实现支持这些方法。

阅读InputStream JavaDoc了解更多信息。

关于java - 在Mule中,我如何在不改变原始输出流的情况下记录http响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18414478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com