Java 如何通过JBoss HttpRouter向端点发送带有参数的POST请求?

Java 如何通过JBoss HttpRouter向端点发送带有参数的POST请求?,java,jboss,httprequest,esb,Java,Jboss,Httprequest,Esb,我正在处理一个ESB项目,需要使用POST请求调用REST服务。HttpRouter似乎是正确的方法,因为它支持GET和POST方法,但我找不到在调用中注入参数的方法 我该怎么做?你可以试试。它非常易于使用,并且有一组操作HTTP请求所需的全面类。找到了答案。。。这是相当愚蠢的。您所需要做的就是在消息对象中注入参数,这些参数将出现在请求的主体中。以下是JBoss创建的示例代码,可以从HttpRouter的单元测试中找到: final ConfigTree tree = new Confi

我正在处理一个ESB项目,需要使用POST请求调用REST服务。HttpRouter似乎是正确的方法,因为它支持GET和POST方法,但我找不到在调用中注入参数的方法


我该怎么做?你可以试试。它非常易于使用,并且有一组操作HTTP请求所需的全面类。

找到了答案。。。这是相当愚蠢的。您所需要做的就是在消息对象中注入参数,这些参数将出现在请求的主体中。以下是JBoss创建的示例代码,可以从HttpRouter的单元测试中找到:

    final ConfigTree tree = new ConfigTree("WrappedMessage");
    tree.setAttribute("endpointUrl", "http://127.0.0.1:8080/esb-echo");
    tree.setAttribute("method", "post");
    tree.setAttribute("unwrap", "false");
    tree.setAttribute("MappedHeaderList", "SOAPAction, Content-Type, Accept, If-Modified-Since");

    HttpRouter router = new HttpRouter(tree);
    Message message = MessageFactory.getInstance().getMessage(type);
    message.getBody().add("bar");

    Message response = router.process(message);
    String responseBody = (String)response.getBody().get();
    String responseStr = null;
    if (deserialize)
        responseStr = Encoding.decodeToObject(responseBody).toString();
    else
        responseStr = responseBody;

    return responseStr;

感谢您的回答,但实际上JBoss HttpRouter依赖于Apache HTTP库。我知道如何使用PostMethod对象执行此操作。我要寻找的是如何通过HttpRouter传递参数。