【问题标题】:Error 415 (Unsupported Media Type) while uploading with wink使用 wink 上传时出现错误 415(不支持的媒体类型)
【发布时间】:2012-03-04 20:57:53
【问题描述】:

我有一个使用 wink 的项目。它有几种使用 post/get 的方法,除了使用 POST 消耗application/octet-stream 的方法外,一切正常。调用此方法会导致错误 415。在我看来这是 jar 或配置问题。 可以检查什么来消除配置/jar 冲突?

【问题讨论】:

  • 提示:发布您的代码和您在问题中遇到的异常。

标签: java file-upload jax-rs apache-wink


【解决方案1】:

415 表示不受支持的媒体类型。既然你说你已经用@Consumes("application/octet-stream") 注释了方法,我假设你发送了不同的媒体类型。 通常文件上传使用a multipart media type.

我建议你嗅探流量(Fiddler 是一个非常好的工具)并查看请求中的真实媒体类型。

【讨论】:

  • 相同的代码在旧项目版本中运行良好。我使用 application/octet-stream 发布数据(我在 firefox 海报插件中选择它)。今天我用 @Consumes("application/octet-stream") 注释的方法中将 byte[] 替换为 InputStream 并且它可以工作。我想了解为什么...
  • 方法返回什么?是否匹配 Accept 标头?
  • 函数创建并返回一些对象。如何检查 Accept 标头?这是注释:@POST @Path("/upload") @Consumes(MediaType.APPLICATION_OCTET_STREAM) @Produces(MediaType.APPLICATION_XML)
  • 如果您将代码放在格式化的问题中,那就太好了。检查标题的最佳方法是使用像 Fiddler 这样的嗅探器。您也可以在 org.apache.wink.server.internal.servlet.RestServlet 中的调试器中停止。
  • 由于时间不够,我将停止调查。无论如何,我使用您来自here 的回复解决了这个问题。您有任何链接,我可以在其中阅读有关 byte[] 和 InputStream 的 Providers 的信息吗?
猜你喜欢
  • 1970-01-01
  • 2023-03-13
  • 2021-05-26
  • 2018-10-13
  • 2018-07-25
  • 2016-09-09
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
相关资源
最近更新 更多