我想从REST服务器资源(使用restlet 2.0)访问GET请求的主体。这有以下几个原因:
我想在GET请求中发送参数(以JSON格式),例如,“返回包含这些字段/值的完整对象...”
我想使用https来保护URL请求的参数,如果我将它们指定为url参数,我就无法保护它们。
我想避免很长的网址。
我还在阅读:HTTP GET with request body
我正在寻找代码/示例和api,但我找不到解决方案,你能建议我一个方法吗?你看到更好的框架/解决方案吗? 谢谢 !!! kocisky
答案 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¶m2=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连接器时实际发送的内容。
希望它能帮到你, 亨利