415 不支持的内容类型媒体类型 = 多个部分/表单数据



我有一个REST API,它只@Produces(MediaType.APPLICATION_JSON),@Consume任何MediaType。

即使当我通过创建将MediaType设置为多部分/表单数据的HTTP 请求来使用此 REST API 时,我仍然收到:

HTTP/1.1 415 不支持的媒体类型

在原始HTTP 响应中

但是,当我将内容类型设置为应用程序/json(此REST API@Produces)时,我得到了正确的HTTP响应

下面是REST API 注释:

@POST
@Path("/somePath")
@Produces(MediaType.APPLICATION_JSON)
public JSONObject addDocument(AddDocBean addDocBean) {
...

"现在,我为什么要将内容类型作为多部分/表单数据发送?">

那是因为我使用此服务将文件上传到服务器,并且该文件将以BASE64格式发送。 现在文件的大小约为20Mb,我建议最好以多部分/表单数据的形式发送

但是 HTTP 服务器无法处理此请求,在响应中返回错误 415 不支持的媒体类型

正在使用的 REST 客户端:SoapUI 5.4.0

可能有什么问题?

  • >服务器端的@Produces对应于客户端的Accept:标头。
  • 服务器端的@Consume对应于客户端的媒体类型:标头。

您显示的 API 代码段未指定任何显式@Consume注释,因此默认为纯文本/文本。因此,当您将应用程序/多部分的标头与请求一起发送时,您会得到不受支持的媒体类型

您需要添加显式@Consume("MediaType.MULTIPART_FORM_DATA")//通过您的 API 进行类似的操作,以使 addDocument() 方法支持您发送的表单数据。

最新更新