gpt4 book ai didi

java - 使用 Jersey Client POST 方法调用 RESTful Web 服务时出错

转载 作者:太空宇宙 更新时间:2023-11-04 08:14:06 24 4
gpt4 key购买 nike

Getting an error while trying to consume a Restful web service using POST method(with form param).

我想使用 POST 方法使用 REST 应用程序。请在下面找到我想要访问的资源类。

@Path("/user")

公共(public)类用户{

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response get(@FormParam("username") String userName,
@FormParam("userid") String userId ){

}

我尝试使用 Jesry Client 进行访问。请在下面找到我尝试过的代码。我尝试向 FormParam 添加值,如下所示。

轨迹 1

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。

试验 2

我还尝试使用以下代码添加表单参数

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);

这也导致了同样的错误。

试验 3

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);

这也导致了同样的错误。任何帮助表示赞赏。

最佳答案

由于您的错误表明“服务器遇到内部错误”,您需要查看服务器(日志)以了解出了什么问题。当然,您的第三个客户端看起来可以很好地访问您定义的服务(假设您使用的是真实的东西而不是字符串“baseURL”)。

您可以通过创建 HTML 页面来访问服务,轻松测试服务器是否与客户端分开运行。使用 enctype="application/x-www-form-urlencoded"创建 HTML 表单,并使用表单参数 userid 和 username 发布到您的服务端点(您称之为“baseURL/user”)。当您在浏览器中查看 HTML 表单并点击提交按钮时,它将调用您的服务器 - 如果您收到相同的错误,您可以确定它与您的客户端代码无关。

关于java - 使用 Jersey Client POST 方法调用 RESTful Web 服务时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10732788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com