我有一个REST API,只有 @Produces(MediaType.APPLICATION_JSON) ,而且 @Consume 任何MediaType。
即使我通过创建 HTTP请求来使用此REST API,其中 MediaType 被设置为 multipart / form-data ,我还在接受:
HTTP / 1.1 415不支持的媒体类型
原始 HTTP响应。
但是,当我将 Content-Type 设置为 application / json 时,此REST API @Produces ,我正在获得正确的 HTTP响应。
以下是 REST API注释:
@POST
@Path("/somePath")
@Produces(MediaType.APPLICATION_JSON)
public JSONObject addDocument(AddDocBean addDocBean) {
...
“现在为什么我要将内容类型发送为 Multipart / form-data ?”
这是因为我使用此服务将文件上传到服务器,文件将以 BASE64 格式发送。 现在文件的大小约为 20Mb ,我建议最好将其作为 multipart / form-data
发送但HTTP服务器无法处理此请求,并在响应中返回 ERROR 415 Unsupported MediaType 。
正在使用的REST客户端: SoapUI 5.4.0
可能出现什么问题?
答案 0 :(得分:0)
您展示的API代码段并未指定任何明确的 @Consume 注释,因此默认为plain / text。因此,当您使用您的请求发送应用程序/多部分的标题时,您将获得不支持的媒体类型
您需要添加一个明确的 @Consume(" MediaType.MULTIPART_FORM_DATA") //与您的API类似的内容,使您的addDocument()方法支持您发送的表单数据。