gpt4 book ai didi

java - 如何使用 JSON 数据对 Jersey rest 服务进行 post ajax 调用?

转载 作者:行者123 更新时间:2023-11-29 07:50:19 24 4
gpt4 key购买 nike

我经历过这个link .但这并没有帮助我。

我正在使用 jersey lib v1.17.1。我的 Jersey 休息服务:

@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
@Path("/post1")
public ResponseBean post1(@QueryParam("param1")String param1)
{
return ResponseFactory.createResponse(param1, "TEST", "TEST", null, true);
}

网址是:/test/post1

我的 ajax 调用:

var d = {"param1":"just a dummy data"};
$.ajax({
type : "POST",
url : "http://localhost:7070/scl/rs/test/post1",
contentType :"application/json; charSet=UTF-8",
data : d,
dataType : "json"
})
.done(function(data){
console.log(data);
})
.fail(function(data){
console.log(data);
});

它命中我的休息服务,但作为 param1 我总是得到空值。替代解决方案是添加带有 @XMLRootElement 的 JavaBean,这会将 java 对象编码/解码为 json,反之亦然,但我不想使用它。
有什么方法可以使用 @QueryParam 之类的适当注释来发布和接收数据吗?请帮忙

最佳答案

你的服务器端代码应该是这样的:

@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
@Path("/post1")
public ResponseBean post1(Data param1)
{
return ResponseFactory.createResponse(param1, "TEST", "TEST", null, true);
}

其中 Data 是一个用 @XmlRootElement 注释的 (POJO) 类,对应于您的客户端将发送的 JSON 数据(即,有一个 param1 带有 getter 和 setter 的字段)。 JAX-RS 实现会将 POST 的主体解码为 Data 的实例。

@QueryParam 注释用于检索(通常)GET 请求中的查询参数。查询参数是问号(?)之后的参数。例如:@QueryParam("start") String start 将在处理以下请求时映射设置为 1:GET http://foo.com/bar?start=1,但这不是你在你的情况下所做的,AFAICS。

关于java - 如何使用 JSON 数据对 Jersey rest 服务进行 post ajax 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21699745/

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