我有 Jersey 申请,但无法成功提交表单。我收到 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 不支持的媒体类型错误。
我有什么地方出错了吗?
最佳答案
如果不进行一些调整,Jersey 就不知道如何将 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,因为这是默认行为。您可能想查看this post ,如果您想使用 JSON。
关于java - Jersey 应用程序 - 415 不支持的媒体类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37314966/