0

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

我怎样才能做到这一点 ?

4

2 回答 2

0

您可以尝试Apache HTTP 库。它非常易于使用,并且具有操作 HTTP 请求所需的全面类集。

于 2012-04-11T09:16:35.973 回答
0

找到了答案......这很愚蠢。您需要做的就是在 Message 对象中注入参数,它们将在请求的正文中。这是由 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;
于 2012-04-13T15:29:03.910 回答