【发布时间】:2015-08-18 01:49:27
【问题描述】:
我的代码是这样的:
@Controller
@RequestMapping( value = "/walley/login", method = RequestMethod.POST)
public void login(HttpServletRequest request,
HttpServletResponse response,
@RequestBody RequestDTO requestDTO)
throws IOException, ServiceException {
String userName = requestDTO.getUserName();
String password = requestDTO.getPassword();
System.out.println("userName " + userName +" :: password "+ password);}
RequestDTO.java 文件
public class RequestDTO {
public String userName;
public String password;
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;
}
}
在邮递员中使用以下步骤点击发布请求。
- 打开邮递员。
- 在网址栏中输入网址http://localhost:8080/walley/login。
- 单击 Headers 按钮并输入 Content-Type 作为 header 并在 value 中输入 application/json。
- 从 URL 文本框旁边的下拉列表中选择 POST。
- 从 URL 文本框下方的可用按钮中选择 raw。
- 从以下下拉列表中选择 JSON。 在下面可用的文本区域中,发布您的请求对象: { “用户名”:“测试”, “密码”:“某人” }
作为回应,我收到了错误:
org.springframework.web.HttpMediaTypeNotSupportedException:Content type 'application/json' not supported
我检查并发现在 Spring 3.1.X 或 3.2.X 中我们可以在 @RequestMapping 中为请求设置内容类型“消费者和生产者”,它可以工作,但在 3.0.2 中它们不支持“消费者和生产者”。那么如何在 Spring 3.0.2 版本中使用 @RequestBody 注解设置请求内容类型呢?
【问题讨论】:
-
您的方法没有阻塞任何东西,因此每个请求都转到该方法。确保你的类路径中有一个 JSON 库,比如 Jackson。
-
尝试使用@RequestBody 作为第一个参数 i.s.o。最后。
标签: java json spring spring-mvc soap