使用 Jersey 读取表单数据
我正在开发一个网络应用程序,其中有一个类似的表单
I'm developing a web app where i have a form like that
<form name="form" action="create-user" method="post">
<input name="accept" type="checkbox"><span>{{acceptLegalTerms}}</span><br>
<input type="submit" value="{{Continue}}" class="primary fright"/>
</form>
在服务器端,我们使用的是 Jersey(在 GAE 上).这就是我试图用来读取 POST 值的内容
On the server side, We're using Jersey (on GAE). And here's what I'm trying to use to read the POST values
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("create-user")
public Response createUser(@FormDataParam("accept") boolean acceptForm) {
return Response.ok().entity(acceptForm).build();
}
但它不起作用...它返回我...
But it doesn't work... It returns me...
HTTP ERROR 415
Problem accessing /login/create-user. Reason:
Unsupported Media Type
有什么想法吗?我做错了什么?
Any ideas? What Am I doing wrong?
谢谢!
推荐答案
试试这个:
@Path("test")
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public String testForm(@FormParam("accept") String accept) {
return accept;
}
Multipart 略有不同,请参阅 jersey 示例 multipart-webapp 或查看 http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html.您的网络表单没有生成它,因此 Jersey 正确返回 415 - Unsupported media type,因为您没有任何资源正在处理application/x-www-form-urlencoded"媒体类型.
Multipart is something slightly different, see jersey sample multipart-webapp or see http://www.w3.org/Protocols/rfc1341/7_2_Multipart.html. Your web form is not producing it, so Jersey correctly returns 415 - Unsupported media type, because you don't have any resource which is handling "application/x-www-form-urlencoded" media type.
相关文章