REST 服务返回错误的内容类型并解组

2024-03-16

我正在使用 RESTEasy,更具体地说,是他们框架的客户端。

我正在调用第三方 Web 服务,它会返回一些 JSON 代码。

但是,出于某些充分的原因,他们响应中的内容类型是“text/javascript”。

我如何告诉 RESTEasy 它应该使用 JSON 提供程序(解组目的)来实现“text/javascript”内容类型?

那可能吗 ?

我的代码:

public interface XClient {  

@GET
@Produces("application/json")
@Path("/api/x.json")
public Movie getMovieInformation(
        @QueryParam("q") String title);
}

解决方案可能是什么样的:

public interface XClient {  

@GET
@Produces("text/javascript")
// Tell somehow to use json provider despite the produces annotation
@Path("/api/x.json")
public Movie getMovieInformation(
        @QueryParam("q") String title);
}

我通过使用替换传入内容类型的拦截器来解决,如下所示:

this.requestFactory.getSuffixInterceptors().registerInterceptor(
    new MediaTypeInterceptor());


static class MediaTypeInterceptor implements ClientExecutionInterceptor {

    @Override
    public ClientResponse execute(ClientExecutionContext ctx) throws Exception {
        ClientResponse response = ctx.proceed();
        String contentType = (String) response.getHeaders().getFirst("Content-Type");
        if (contentType.startsWith("text/javascript")) {
            response.getHeaders().putSingle("Content-Type", "application/json");
        }
        return response;
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

REST 服务返回错误的内容类型并解组 的相关文章

随机推荐

  • Array.prototype 与 [] perf

    我还没有真正有机会研究这个问题 在调用 应用类型的上下文中使用时 哪个性能更高 Array prototype vs e g function test1 return Array prototype splice apply argume
  • 如何将 Android 源附加到 Eclipse

    我之前已经按照 Finn Johnsen 的说明成功将 Android 源附加到 Eclipsehere http johnsenf blogspot com 2009 12 android sources and javadoc in e
  • Jquery查找具有特定数据属性的元素[重复]

    这个问题在这里已经有答案了 我可以使用什么函数来选择 class rate stars 的子 div 我有一个从 1 5 的变量范围 我想选择具有该特定数据评级的子 div 我努力了 rate widget find attr data r
  • 尝试通过方法“System.Web.Helpers.Json..cctor()”访问方法“System.Web.Helpers.Json.CreateSerializer()”失败

    我在用System Web Helpers Json将一些 JSON 反序列化为dynamic在 NET 4 中 以下行失败并出现此错误 TypeInitializationException Attempt by method Syste
  • 有时会话变量停止工作

    我已经经历过两次这样的事了 突然 我的登录系统停止工作 通过调试我发现 SESSION 变量在登录过程中无法生存 然后 在没有明显原因的情况下 它会恢复工作 这是流程 用户登录于index html 表单提交至login php login
  • 如何先保存粘贴板内容然后再恢复它们?

    我有一个不露面的 Mac OS X 应用程序 需要从其他应用程序复制选择 我通过模拟 CMD C 击键来实现这一点 它工作完美 但我认为有一个至关重要的副作用 它会在未经用户许可的情况下覆盖用户的粘贴板 所以我想在复制选择之前我应该 保存粘
  • 使用 nuget 包添加自定义构建步骤

    我正在开发一个 nuget 包 它将设置当前项目以使用我公司的程序集版本控制标准 除了添加自定义构建步骤之外 我已经让它顺利地完成了我想要的所有事情 到目前为止 从历史上看 这是通过直接编辑 csproj 文件并在 xml 中添加几个新标签
  • 在 Haskell 中获取列表最后一个元素的最快方法

    在 Haskell 中获取列表最后一个元素的最快方法是什么 同样在下一次迭代中 我想删除列表的第一个和最后一个元素 最优雅的方法是什么 我正在尝试列表理解 但这看起来不是很有效 您可以使用the last功能 http hackage ha
  • 为什么 Thread.Sleep() 在 SerialPort.Open 和 Close 之前?

    我注意到我在 SerialPort 关闭和打开时读到的示例代码 人们会在 SerialPort Open 和 Close 之前添加 Thread Sleep 1000 就像下面这样 Thread Sleep 1000 serialPort1
  • jqgrid更改列标题属性

    当我将鼠标悬停在特定单元格值上时 悬停值与单元格值相同 我可以更改与单元格值不同的悬停文本吗 Thanks 您可以在列的 colModel 中使用 cellattr 属性来设置自定义工具提示 例如 cellattr function ret
  • QMenu 中 QActions 的 QTooltip

    我希望能够显示工具提示QMenu items QActions 我取得的最好成绩是连接悬停信号QAction to a QTooltip show connect action QAction hovered QToolTip showTe
  • Nodejs Express fs 将文件迭代到数组或对象失败

    因此 我尝试使用 Nodejs Express FS 模块来迭代我的应用程序中的目录 将每个文件名存储在一个数组中 我可以将其传递到我的 Express 视图并迭代列表 但我很难做到这一点 当我在 files forEach 函数循环中执行
  • Sql Server Case 语句在用户定义函数中给出错误

    我想在用户定义的函数中使用 case 语句 因为我需要匹配多个术语 我可以使用表格进行匹配 但随后我无法将其放入计算列定义中 这适用于 IF 语句 CREATE FUNCTION MaraSizeNumber ms varchar RETU
  • 将 auto_ptr<> 与数组一起使用

    我在用着auto ptr lt gt 它使用类指针类型的数组 那么如何为其赋值 e g auto ptr
  • Rails ruby​​ - 未找到 cap 命令

    我正在尝试使用 Rubber 将示例应用程序部署到 Amazon EC2 我也在关注 Rubber 的 Railscasts 剧集 到目前为止 我已经安装了 gem 运行了 vulcaznize 命令 并对rubber yml 文件进行了修
  • 如何防止tinyMCE粘贴事件?

    如果编辑器当前内容的长度加上要粘贴的单词的长度超过指定的限制 我需要阻止tinyMCE的粘贴事件 我该怎么做 谢谢 我错了 我不需要阻止或禁用tinyMCE 中的粘贴来执行此操作 我用了他们的paste插件并在粘贴之前修改了内容 funct
  • 显式 int 类型作为参数

    是否可以将函数写为 void func uint64 t val template
  • 如何使用 jQuery 设置动态文本框的只读属性?

    我正在尝试从数据库值填充文本框 并且我想将文本框值设置为只读 当用户单击 编辑 选项时 将所有文本框设置为可编辑 我没能做到这一点 这是我的 HTML 代码
  • 使用 Immutable 对普通对象进行深度访问

    考虑以下示例 const stickers new OrderedMap set 1 hero batman name Bruce stickers getIn 1 gt hero batman name Bruce stickers ge
  • REST 服务返回错误的内容类型并解组

    我正在使用 RESTEasy 更具体地说 是他们框架的客户端 我正在调用第三方 Web 服务 它会返回一些 JSON 代码 但是 出于某些充分的原因 他们响应中的内容类型是 text javascript 我如何告诉 RESTEasy 它应