尝试使用Restful Web服务时出错 POST方法(带表格参数)。
我想使用POST方法使用REST应用程序。 请在下面找到我想要访问的资源类。
@Path("/user")
公共类用户{
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response get(@FormParam("username") String userName,
@FormParam("userid") String userId ){
}
我尝试使用Jesry Client进行访问。请在下面找到我尝试过的代码。 我尝试向FormParam添加值,如下所示。
WebResource webResource = client.resource("baseURL/user");
String input = "userid:1001,username:demo1";
ClientResponse response = webResource.type("application/x-www-form-urlencoded").post(ClientResponse.class, input);
我收到错误回复“服务器遇到内部错误(),导致无法完成此请求”。 我想我没有正确地将值添加到FormParam中。
我还尝试使用以下代码添加表格参数
MultivaluedMap formData = new MultivaluedMapImpl();
formData.add("userid", "1001");
formData.add("username", "demo1");
ClientResponse response = webResource.type("application/x-www-form-urlencoded").post(ClientResponse.class, formData);
这也导致了同样的错误。
Form f = new Form();
f.add("userid", "1001D");
f.add("username", "1001D");
ClientResponse response = webResource.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).post(ClientResponse.class, f);
这也导致了同样的错误。 任何帮助表示赞赏。
答案 0 :(得分:1)
由于您的错误指示“服务器遇到内部错误”,您需要查看服务器(日志)以查看出现了什么问题。当然,您的第三个客户端看起来很好,可以达到您定义的服务(假设您使用的是真实的而不是字符串“baseURL”)。
通过创建HTML页面来访问服务,您可以轻松地测试您的服务器是否与客户分开工作。使用enctype =“application / x-www-form-urlencoded”创建一个HTML表单,并使用表单参数userid和username发布到您的服务端点(您称之为“baseURL / user”)。当您在浏览器中查看HTML表单并点击提交按钮时,它将调用您的服务器 - 如果您收到相同的错误,您可以确定它与您的客户端代码无关。
答案 1 :(得分:0)