Restlet客户端如何处理媒体类型的请求?

时间:2014-05-13 11:33:00

标签: java json http-headers restlet

我有几个关于Restlet客户端如何处理媒体类型标题的新手问题:

  1. Restlet客户将放入什么'内容类型'如果我传入类型a)POJO或b)一个InputStream实例的实体?什么是“接受”'标题将是?
  2. 如果我想在HTTP主体中传输JSON格式的POJO,我是否需要序列化POJO并将其作为JSON字符串传递或者我可以传入POJO而Restlet将完成剩下的工作吗?如果是前一种情况,我是否需要指定'内容类型'标题和方法?
  3. 非常感谢!

1 个答案:

答案 0 :(得分:1)

如果您依赖ClientResource类,则可以向put调用添加MediaType参数,例如

put(myPojo, MediaType.APPLICATION_JSON);

<强>更新 实际上,额外媒体类型参数定义了远程资源所期望的接受结果类型,但不适用于发送的实体。

对发送的实体/ POJO的媒体类型的控制基于ConverterService默认设置,该设置取决于类路径上可用的扩展及其各自的顺序。

您可以通过直接调用

进行完全控制
ClientResource cr = new ClientResource("http://targetDomain/path");
cr.put(cr.toRepresentation(myPojo, new Variant(MediaType.APPLICATION_JSON));

您还需要在类路径及其依赖项上添加org.restlet.ext.jackson扩展。 XStream扩展是另一种选择。