繁体   English   中英

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

[英]How does Restlet client handle media type of request?

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

  1. 如果我传入类型a)POJO或b)InputStream实例的实体,Restlet客户端将在“ content-type”标头中放入什么? 那么“ accept”头将是什么?
  2. 如果我想在HTTP主体中以JSON格式传输POJO,我是否需要序列化POJO并将其作为JSON字符串传递,还是可以仅传递POJO而Restlet会完成其余工作? 如果是前一种情况,我是否需要指定“ content-type”标头以及如何指定?

非常感谢!

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

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扩展是另一种选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM