gpt4 book ai didi

java - 当我使用查询参数注入(inject)数据时,Jax-rs Jersey 客户端给出空值

转载 作者:行者123 更新时间:2023-11-30 07:43:09 25 4
gpt4 key购买 nike

我是 JAX-RS 的新手。当我在客户端中使用带有发布请求的查询参数时,它返回空值。这是我的代码。

资源Web服务代码:

@Path("/user")
public class JSONService {

@POST
@Path("/add")

@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public Response addUser(
@QueryParam("name") String name,
@QueryParam("age") int age) {

return Response.status(200).entity("addUser is called, name : " + name + ", age : " + age).build();

}
}

客户端代码:

try {
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/simpleweb/rest/user").path("/add");

MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
queryParams.add("name", "arunkumar");
queryParams.add("age", "25");

ClientResponse response = webResource.type(MediaType.APPLICATION_FORM_URLENCODED).post(ClientResponse.class,queryParams);
if (response.getStatus() != 200) {
throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
}

String output = response.getEntity(String.class);
System.out.println("============getCtoFResponse============");
System.out.println(output);

} catch (Exception e) {
e.printStackTrace();
}
}

输出是:

============getCtoFResponse============addUser 被调用,名称:null,年龄:0

请帮助我解决这个问题。谢谢

最佳答案

使用@FormParam而不是@QueryParam。后者用于 URL 中的查询字符串键/值对,例如/url?name=blah&age=2@FormParam 用于 application/x-www-form-urlencoded 实体数据,这是您要发送的内容

关于java - 当我使用查询参数注入(inject)数据时,Jax-rs Jersey 客户端给出空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34373255/

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