Java Restlet客户端如何处理媒体类型的请求?
我有几个关于Restlet客户端如何处理媒体类型头的新手问题:Java Restlet客户端如何处理媒体类型的请求?,java,json,http-headers,restlet,Java,Json,Http Headers,Restlet,我有几个关于Restlet客户端如何处理媒体类型头的新手问题: 如果我传入类型为a)POJO或b)InputStream实例的实体,Restlet客户端将在“content type”头中放入什么?“接受”标题是什么 如果我想在HTTP正文中传输JSON格式的POJO,我需要序列化POJO并将其作为JSON字符串传递,还是只传递POJO,Restlet将完成其余工作?如果是前一种情况,是否需要指定“内容类型”标题以及如何指定 非常感谢 如果依赖ClientResource类,则可以向put调用添
非常感谢 如果依赖ClientResource类,则可以向put调用添加MediaType参数,例如
put(myPojo, MediaType.APPLICATION_JSON);
更新
实际上,extra media type参数定义了远程资源所需的可接受结果类型,但不适用于发送的实体
对实体/POJO发送的媒体类型的控制基于ConverterService默认设置,这取决于类路径上可用的扩展及其各自的顺序
您可以通过直接调用
ClientResource cr = new ClientResource("http://targetDomain/path");
cr.put(cr.toRepresentation(myPojo, new Variant(MediaType.APPLICATION_JSON));
您还需要在类路径及其依赖项上添加org.restlet.ext.jackson扩展。XStream扩展是另一个选项。那么使用MediaType.APPLICATION_JSON作为第二个参数,myPojo将自动序列化为JSON字符串?这是由restlet扩展完成的吗?抱歉,我的初始响应不正确,请参阅上面的更新。非常感谢,这解决了我的问题。通过进一步阅读api文档,我将直接传入JacksonRepresentation实体,但不确定是否不鼓励这样做。@JeromeLouvel与此问题/答案相关,您能否帮助我解决我们面临的问题: