我正在开发一个ESB项目,我需要使用POST请求调用REST服务。 HttpRouter似乎是正确的做法,因为它支持GET和POST方法,但我找不到在我的调用中注入参数的方法。如何通过JBoss HttpRouter向终端发送带参数的POST请求?
我该怎么做?
我正在开发一个ESB项目,我需要使用POST请求调用REST服务。 HttpRouter似乎是正确的做法,因为它支持GET和POST方法,但我找不到在我的调用中注入参数的方法。如何通过JBoss HttpRouter向终端发送带参数的POST请求?
我该怎么做?
找到答案...这真是愚蠢。您只需在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;
您可以试试Apache HTTP library。它非常易于使用,并具有操作HTTP请求所需的全面的类。
谢谢您的回答,但实际上的JBoss HttpRouter要依赖于Apache HTTP库。我知道如何用PostMethod对象来做到这一点。我正在寻找的是如何使用HttpRouter传递参数。 – Anth0 2012-04-13 15:24:03