java - postman 发送原始 json 不起作用

标签 java json rest jersey postman

https://drive.google.com/file/d/1OiFUCKh1M5Su73SD7Xp8Y_LDqGpyVqC3/view?usp=sharing

我正在使用 jersey 处理 REST api,并使用 postman 发送原始 json,如下所示。 我的代码

@POST
    @Consumes({MediaType.APPLICATION_JSON})
    @Path("register")
    public Response register(@QueryParam("email") String email, @QueryParam("username") String userName, @QueryParam("password") String password) {
        System.out.println("username: " + userName);
        System.out.println("password: " + password);
        System.out.println("email: " + email);
}

但我收到了

//Output using raw json
username: null,
password: null,
email: null

我不知道为什么。如果我使用 Param(Postman 中“发送”按钮左侧的按钮并设置键值)而不是原始 json。有效

//Output when use param
username: abc,
password: 123456
email: email

请注意:我确实使用 Content-Type 设置了 Header:application/json

最佳答案

正如我在评论中提到的,您需要将数据作为查询参数的一部分传递,或者更改注册方法签名以接受其中包含用户名、密码和电子邮件字段的 pojo

将您的方法更改为如下所示:

@POST
@Consumes({MediaType.APPLICATION_JSON})
@Path("register")
public Response register(User user) {
    System.out.println("username: " + user.getUsername() );
    System.out.println("password: " + user.getPassword() );
    System.out.println("email: " + user.getEmail() );
}

public class User{
    private String username = null;
    private String password= null;
    private String email = null;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    } 
}

关于java - postman 发送原始 json 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47480422/

相关文章:

java - Thread.sleep() 和 Object.sleep() 的区别

json - 如何使用 jq 将数字转换为字符串?

json - 使用 JQ 展平嵌套的 JSON 数组

javascript - 循环遍历 Handlebars 中的 json 数据

rest - channel :mychannel received discovery error:access denied Failed to evaluate transaction: Error: DiscoveryService: mychannel error: access denied

facebook - 如何为移动应用程序实现安全的 Facebook 登录/注册/连接 Web 服务?

java - GWT 编译后部署的应用程序不反射(reflect)服务器端的更改

java - 使用 CipherOutputStream 的递归加密给出一个空字节[]

java - 将 JSON 字符串序列化为 JSON 中的值

python:如何通过http put在mongo中存储数据