json - 带有 JSON 正文的 Mule ESB HTTP post

标签 json http post mule

我很难弄清楚如何在请求正文中使用 JSON 执行 HTTP POST。下面发布了我的流程示例。我有一个轮询 POJO 的轮询器,它在轮询时生成一个 JSON。然后,我需要获取此 JSON 并在正文中使用它向外部 REST 服务执行 HTTP POST。 Apache HTTP 客户端的等效功能是将字符串实体设置为我的 JSON 消息,并将 header 内容类型设置为 application/json。我该如何在 Mule 中做到这一点?预先感谢您的帮助。

<flow name="flow1" doc:name="flow1">
    <poll frequency="100000">
        <logger message="starting" level="INFO" doc:name="Logger"/>
    </poll>
    <component class="JavaJSONGeneratorClass" doc:name="ReferenceToJavaClass"/>
    <echo-component doc:name="Echo"/>
    <http:outbound-endpoint exchange-pattern="request-response" host="xxx.xxx.xxx.xxx" port="8080" path="path/to/service" doc:name="HTTP"/>
    <logger level="INFO" doc:name="Logger"/>
    <byte-array-to-string-transformer doc:name="Byte Array to String"/>
    <echo-component doc:name="Echo"/>
</flow>

Java 类会执行如下操作:

import java.io.Serializable;

import org.mule.api.MuleEventContext;
import org.mule.api.MuleMessage;
import org.mule.api.lifecycle.Callable;
import org.mule.module.client.MuleClient;

public class JSONGenerator implements Callable, Serializable 
{

@Override
public Object onCall(MuleEventContext eventContext) throws Exception 
{

    String json = generateSomeJson(some_parameter);

    return json;
}

}

最佳答案

您可能只是忘记将 contentType 属性设置为 http 出站端点,该端点应如下所示:

<http:outbound-endpoint exchange-pattern="request-response" host="xxx.xxx.xxx.xxx" port="8080" path="path/to/service" doc:name="HTTP" contentType="application/json"/>

mule 还附带了 Json 的 OOTB 解决方案,例如 object-to-json-transformer或者 DataMapper对于 EE 版本,因此我建议尽可能使用其中之一,而不是自定义版本。

关于json - 带有 JSON 正文的 Mule ESB HTTP post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12607958/

相关文章:

http - 应该升级 : TLS followed by Upgrade: h2c/websocket on port 80 still be secure?

javascript - fetch api中如何通过get请求发送表单数据

android - 使用 Android Retrofit 2 Httpok3 的空响应主体

javascript - 如何在 angularjs 中使用 json 从 View 更改 Controller

java - JAX-RS,Map<String,String> 到 JSON 没有开销?

angular - Http Get 返回错误

json - Angular 9 HttpErrorResponse 'JSON.Parse error' 响应正常

asp.net-mvc - 为什么 HttpContext.Request.Url 与地址栏中的内容不匹配?

php - 无法使用Fuel Kotlin将POST请求发送到我的PHP页面

android - 如何在 POST 请求后调试空响应