[英]How to make post ajax call with JSON data to Jersey rest service?
我已經通過這個鏈接 。 但這並沒有幫助我。
我正在使用jersey lib v1.17.1。 我的球衣休息服務:
@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, @XMLRootElement
將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
是(POJO)類,其@XmlRootElement
批注,並且對應於客戶端將發送的JSON數據(即,具有帶有getter和setter的param1
字段)。 JAX-RS實現會將POST的正文解組為Data
的實例。
@QueryParam
批注用於在(通常) GET
請求中檢索查詢參數。 查詢參數是問號( ?
)之后的參數。 例如: @QueryParam("start") String start
處理以下請求時, @QueryParam("start") String start
將映射為1
: GET http://foo.com/bar?start=1
,但這不是您正在執行的操作案例,AFAICS。
You can simply take Post dat as a string and then you can parse it using JSONObject.
@POST
@Consumes({MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_JSON})
@Path("/post1")
public Response postStrMsg(String msg) {
String output = "POST:Jersey say : " + msg;
return Response.status(200).entity(output).build();
}
@XMLRootElement是實現此目的的方法,因為必須先對json進行封送處理,然后才能使用其任何元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.