gpt4 book ai didi

使用 Netbeans 的 REST Web 服务的 Java 客户端

转载 作者:行者123 更新时间:2023-12-01 09:23:09 27 4
gpt4 key购买 nike

我正在尝试为 REST Web 服务编写 Java 客户端,定义如下:

@Path("/")
public class Translator {
public Translator() { }

@POST
@Produces("application/json")
@Path("/translate")
public String translate(@QueryParam("dir") String dir, @QueryParam("string")String string, @QueryParam("user")String user, @QueryParam("key")String key){
return doTranslation(dir, string, user, key);
}
}

我尝试使用 NetBeans 选项“新的 Restful Java 客户端”,选择包含 Web 服务的项目作为 REST 源。

但它生成一个类,其中包含一个没有参数的方法:

public class NewJerseyClient {
private WebTarget webTarget;
private Client client;
private static final String BASE_URI = "http://localhost:8086/TranslatorREST/Translator";

public NewJerseyClient() {
client = javax.ws.rs.client.ClientBuilder.newClient();
webTarget = client.target(BASE_URI);
}

public String translate() throws ClientErrorException {
return webTarget.path("translate").request().post(null, String.class);
}
}

所以我没有找到将参数传递给 Web 服务的方法。

只要我不启用选项“Post QueryString”,我就可以从 SoapUI 成功使用此 Web 服务,在这种情况下,Web 服务会收到所有参数的“null”。

提前致谢。

最佳答案

您可以使用 .queryParam() 添加参数:

public class NewJerseyClient {
private WebTarget webTarget;
private Client client;
private static final String BASE_URI = "http://localhost:8086/TranslatorREST/Translator";

public NewJerseyClient() {
client = javax.ws.rs.client.ClientBuilder.newClient();
webTarget = client.target(BASE_URI);
}

public String translate() throws ClientErrorException {
return webTarget.path("translate").queryParam("dir", "myDir")
.queryParam("string", "myString")
.queryParam("user", "myUser")
.queryParam("key", "myKey").request().post(null, String.class);
}
}

关于使用 Netbeans 的 REST Web 服务的 Java 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40024068/

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