簡體   English   中英

如何使用Post Request將JSON字符串傳遞給Jersey Rest Web服務

[英]How to pass JSON String to Jersey Rest Web-Service with Post Request

我想創建一個REST Jersey Web服務,接受JSON字符串作為輸入參數。

此外,我將使用post request和webmethod我將返回一個JSON字符串。

如何使用Ajax post請求在HTML頁面中使用它。 我想知道我需要在Web方法上接受JSON字符串的所有更改。

 public class Hello {

      @POST
     public String sayPlainTextHello() {
      return "Hello Jersey";
      }
   }

需要打破你的要求。 首先,您要接受JSON字符串。 所以你需要的方法

@Consumes(MediaType.APPLICATION_JSON)

接下來,您需要確定您希望方法獲得的內容。 您可以按照建議獲取JSON字符串,在這種情況下,您的方法如下所示:

@Consumes(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final String input) {

或者,如果您的JSON字符串映射到Java對象,您可以直接獲取該對象:

@Consumes(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final MyObject input) {

您聲明要返回JSON字符串。 所以你需要:

@Produces(MediaType.APPLICATION_JSON)

然后你需要實際返回一個JSON字符串:

return "{\"result\": \"Hello world\"}";

所以你的完整方法看起來像這樣:

@PATH("/hello")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final String input) {
  return "{\"result\": \"Hello world\"}";
}

關於使用AJAX發送和接收,它看起來像這樣:

var myData="{\"name\": \"John\"}";
var request = $.ajax({
    url: "/hello",
    type: "post",
    data: myData
});

request.done(function (response, textStatus, jqXHR){
    console.log("Response from server: " + response);
});

這會奏效。 “path”是在AJAX調用中使用的相對URL路徑。

public class Hello {

@POST
@Path("/path")
@Produces({ "text/html" })
 public String sayPlainTextHello() {
  return "Hello Jersey";
  }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM