415不支持的媒体类型

415不支持的媒体类型

我有球衣申请,但我无法使表单提交成功。我收到415不支持的媒体类型错误。

AngularJs:

$http.put(url, frmData, {
      transformRequest: angular.identity,
      headers: {'Content-Type': 'application/x-www-form-urlencoded'},
      data: frmData
    });


Java:

@PUT
@Path("/submitform")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public void saveForm(@Context HttpServletRequest request,
                     PojoClass pojoClass) {

}


我收到415不支持的媒体类型错误。

我哪里出问题了?

最佳答案

如果没有一些周二安排,泽西岛不知道如何将application/x-www-form-urlencoded数据转换为POJO。以下是它所知道的

public Response post(javax.ws.rs.core.Form form)

public Response post(MultivaluedMap<String, String> form)

public Response post(@FormParam("key1") key1, @FormParam("key2") String key)


如果要使用POJO,可以使用@BeanParam注释POJO参数,并使用@FormParam注释POJO字段。

public class POJO {
    @FormParam("key1")
    private String key1;
    @FormParam("key2")
    private String key2;
    // getters/setters
}

public Response pose(@BeanParam POJO pojo)


但是,如果使用的是Angular,则最好使用JSON,因为这是默认行为。如果要使用JSON,则可能要签出this post

关于java - Jersey应用程序-415不支持的媒体类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37314966/

10-15 08:11