gpt4 book ai didi

java - HTTP 状态 415 - 请求实体的格式不受支持

转载 作者:IT老高 更新时间:2023-10-28 20:56:51 24 4
gpt4 key购买 nike

我正在开发 java restful web 服务。我让它适用于 GET 请求,但 POST 请求不起作用。我的 Controller 类是 RestController。到目前为止,我已经完成了这些:

@RequestMapping(value = "/api/signup", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public long signUp(@ModelAttribute ApiMemberModel apiMember) {
memberService = new MemberDetailsService();
Member m = memberService.createMember(apiMember.getUsername(), apiMember.getPassword(), apiMember.getEmail(), "");
return m.getId();
}

还尝试了 RequestBody 而不是 ModelAttribute。

我使用 Postman extension用于发送 POST 请求。例如:

{
"username": "asd",
"password": "sfsdg",
"email": "sdfdsf@fdsfkg.com"
}

但我得到了错误:

description The server refused this request because the request entity is in a format not supported by the requested resource for the requested method.

我做错了什么?模型类是:

 public class ApiMemberModel {
private String username;
private String password;
private String email;

public ApiMemberModel(String username, String password, String email) {
this.username = username;
this.password = password;
this.email = email;
}

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;
}
}

最佳答案

我敢打赌,来自 Postman 的调用不包括 Content-Type: application/json

HTTP 415 表示服务器不理解请求的媒体格式。在您的 Controller 中,您指定它接受 JSON,但您没有说明请求是否指示正文采用该格式。仅仅因为您将数据以 JSON 格式放置,并不意味着服务器会识别它,您必须在 Content-Type header 中指明它。

关于java - HTTP 状态 415 - 请求实体的格式不受支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33457654/

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