如何使用restlet 2.0从REST服务器资源访问GET请求的主体?

时间:2011-05-12 12:58:30

标签: rest https get restlet

我想从REST服务器资源(使用restlet 2.0)访问GET请求的主体。这有以下几个原因:

  • 我想在GET请求中发送参数(以JSON格式),例如,“返回包含这些字段/值的完整对象...”

  • 我想使用https来保护URL请求的参数,如果我将它们指定为url参数,我就无法保护它们。

  • 我想避免很长的网址。

我还在阅读:HTTP GET with request body

我正在寻找代码/示例和api,但我找不到解决方案,你能建议我一个方法吗?你看到更好的框架/解决方案吗? 谢谢 !!! kocisky

2 个答案:

答案 0 :(得分:1)

为什么不使用POST?您已经通过在正文中包含标准来放弃缓存响应的功能。那么使用GET有什么好处呢?

使用POST必须减少HTTP规范的颠覆,而不是发送GET主体。

答案 1 :(得分:0)

为了做你想做的事,你需要使用Restlet的Request和Client API。使用ClientResource类无法完成此操作。您可以在下面找到一些提示来实现:

String endpoint = "http://localhost:8084/accounts/accountId/mails/mailId";
Request request = new Request(Method.GET, endpoint);
StringRepresentation representation = new StringRepresentation(
                                  "param1=value1&param2=value2");
request.setEntity(representation);

Context context = new Context();
context.getParameters().add("tracing", "true");
Client client = new Client(context, Protocol.HTTP);
Response response = client.handle(request);

跟踪参数允许您查看使用内部Restlet连接器时实际发送的内容。

希望它能帮到你, 亨利