首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Post请求将JSON字符串传递到Jersey Rest Web-Service

如何通过Post请求将JSON字符串传递到Jersey Rest Web-Service
EN

Stack Overflow用户
提问于 2013-01-31 17:36:26
回答 2查看 38K关注 0票数 7

我想创建一个REST Jersey Web-Service,接受JSON字符串作为输入参数。

此外,我将使用post请求,并从webmethod返回一个JSON字符串。

如何使用Ajax post请求在HTML页面中使用它。我想知道在web方法上需要做哪些更改才能接受JSON字符串。

代码语言:javascript
复制
 public class Hello {

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

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-31 18:11:40

需要分解你的请求。首先,您希望接受一个JSON字符串。所以在你的方法上你需要

代码语言:javascript
复制
@Consumes(MediaType.APPLICATION_JSON)

接下来,您需要决定您希望您的方法获得什么。您可以按照您的建议获取JSON字符串,在这种情况下,您的方法将如下所示:

代码语言:javascript
复制
@Consumes(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final String input) {

或者,如果您的JSON字符串映射到一个Java对象,您可以直接获取该对象:

代码语言:javascript
复制
@Consumes(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final MyObject input) {

您声明要返回一个JSON字符串。因此,您需要:

代码语言:javascript
复制
@Produces(MediaType.APPLICATION_JSON)

然后您需要实际返回一个JSON字符串:

代码语言:javascript
复制
return "{\"result\": \"Hello world\"}";

因此,您的完整方法如下所示:

代码语言:javascript
复制
@PATH("/hello")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String sayPlainTextHello(final String input) {
  return "{\"result\": \"Hello world\"}";
}

关于使用AJAX发送和接收,它看起来像这样:

代码语言:javascript
复制
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);
});
票数 26
EN

Stack Overflow用户

发布于 2013-01-31 17:48:05

这将会起作用。" path“是AJAX调用中使用的相对URL路径。

代码语言:javascript
复制
public class Hello {

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

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14622531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档