尝试使用POST方法(使用form param)使用Restful web服务时出错。
我想使用POST方法使用REST应用程序。请在下面找到我要访问的资源类。
@Path("/user")
公共类用户{
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response get(@FormParam("username") String userName,
@FormParam("userid") String userId ){
}
我尝试使用杰西客户端访问。请在下面找到我尝试的代码。我尝试向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);
这也导致了同样的错误。感谢您的帮助。
由于您的错误表示服务器遇到了内部错误,因此您需要查看服务器(日志)以查看哪里出错了。当然,你的第三个客户端看起来很好,可以到达你定义的服务(假设你使用的是真实的东西,而不是字符串“基址”)。
通过创建HTML页面以访问服务,您可以轻松地测试服务器是否与客户端分开工作。使用enctype=“application/x-www-form-urlencoded”创建一个HTML表单,并使用表单参数userid和username发布到您的服务endpoint(您称之为“baseURL/user”)。当您在浏览器中查看HTML表单并点击提交按钮时,它将调用您的服务器-如果您收到相同的错误,您可以确定这与您的客户端代码无关。
希望http://yogeshmprajapati.blogspot.in/2011/12/login-to-fb-from-java.html我会帮助你的。