gpt4 book ai didi

java - reSTLet 内容类型,使用 reSTLet 进行版本控制

转载 作者:太空宇宙 更新时间:2023-11-04 13:06:21 27 4
gpt4 key购买 nike

我通过使用带有camel的reSTLet来公开休息服务。

我公开了一个休息服务作为一端,而在另一端我覆盖了流程方法。代码如下所示,

from("restlet:/service/serviceName/{serviceId}?restletMethod=PUT").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
//Implementation goes here.
}
}

我这里有两个问题。

  • 我无法设置请求的内容类型
  • 我不能实现内容类型的版本控制

我尝试了以下选项。

setHeader(Exchange.CONTENT_TYPE, simple("application/json"))

setHeader(Exchange.ACCEPT_CONTENT_TYPE, simple("application/json"))

问题还是没有解决。还有其他选择吗?

最佳答案

所以你的路线是从。这意味着您向它发送了一个请求。

  1. 从 fiddler、chrome 或其他地方向其发送包含您想要的 header 的请求。

  2. 将日志记录添加到打印整个交换(包括 header )的路由。在这里您可以找到 Content-Type 以及所有其他 HTTP header 。

  3. 要访问它们,您需要像访问任何其他 header 一样访问 Exchange 上的 header 。

我不明白你为什么在那里设置标题。

例如,在您的流程代码中,您可以这样做:

String contentType=(String) exchange.getIn().getHeader("Content-Type");
if (contentType.equals("application/json")) {
//do something
}

请注意,您需要验证 header 是否称为 Content-Type 而不是 content-type 或类似名称,因为 RESTLET 区分大小写。这就是为什么您需要添加日志记录以查看交换上 header 的名称。

关于java - reSTLet 内容类型,使用 reSTLet 进行版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34392849/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com