当前位置: 首页 > 面试题库 >

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

闾丘书
2023-03-14
问题内容

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



 类似资料:
  • 注意:“”表示我要在两个地址上侦听客户端。 server.py client.py

  • 问题内容: 单个Servlet如何处理以用户请求形式出现的多个客户端请求?基于单例设计模式,我知道我们创建了一个servlet实例,但是单个servlet如何处理数百万个请求。对其所涉及的线程也感到困惑。 同样,这里提供了任何浏览器规范或设置,可用于跨请求发送请求或生成针对请求发送的线程。 所有框架都相同还是不同(例如,struts v / s springs)? 问题答案: Struts / S

  • 客户端的HTTP/HTTPS请求。 进程:主进程​ ClientRequest是由EventEmitter来实现Writable Stream​ new ClientRequest(options) 作用:发起新的HTTP/HTTPS请求 options(Object | String) - options是String时即请求URL。 options 是Object时则按以下属性请求: meth

  • 在使用了RESTful服务的场景下,非浏览器的客户端也可以直接提交多路文件请求。上一节讲述的所有例子与配置在这里也都同样适用。但与浏览器不同的是,提交的文件和简单的表单字段,客户端发送的数据可以更加复杂,数据可以指定为某种特定的内容类型(content type)——比如,一个多路上传请求可能第一部分是个文件,而第二部分是个JSON格式的数据: POST /someUrl Cont

  • 我试图创建一个谷歌日历事件使用curl这是我的要求,但它不工作,我不知道是什么错误,我正在犯: curl“https://www.googleapis.com/calendar/v3/calendars/{CalID}/events?access_token={access_token}”-h“content-type:application/json”-x post-d“{”结束“:{”开始“:

  • 我正在使用flurl提交HTTP请求,这是非常有用的。现在,我需要将一些请求的“content-type”头更改为“application/json;odata=verbose” 您可以看到我如何尝试添加上面的头() 不幸的是,这给了我以下错误: “InvalidOperationException:错误使用的标头名称。请确保请求标头与HttpRequestMessage一起使用,响应标头与Htt