Postman发送POST请求到Spring Boot的正确姿势
最近用Spring Boot搭建了一些restful api,写起来真的很爽。但是当用Postman测试一些POST请求的接口的时候却遇到一些问题,上网冲浪查了一堆博客资料,发现都讲得不清不楚,于是记录下来希望也能让同道少走弯路。
假设有一个POST请求的接口是接受一个对象而不是单个参数,如注册接口,需要传递一个LoginUser对象,该对象的结构如下:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class LoginUser {
private String username;
private String password;
}
我们的Controller文件中接口是这样的:
public class UserController {
@Autowired
UserService userService;
@Autowired
TokenService tokenService;
@PostMapping("/register")
public JsonResultObject register(@RequestBody MyUser user) {
// other logic codes, just skip it
return userService.register(user);
}
}
在login方法上传入的是一个对象LoginUser,需要用到@RequestBody注解。一旦使用了这个注解,Postman的请求头里面要设置成"Content-Type:application/json"。否则会出现图1的报错,然而光是这样设置还是不够的。

图1 unspported Media Type
如果在Postman中使用form-data或者x-www-form-urlencoded方式,如图2所示,则会有JSON parse error。

图2 json parse报错
千万别以为自己使用的第三方json包出问题了,网上还有人说是因为使用的jackson的版本和Spring Boot版本不匹配,其实真不见得是这个问题。正确的做法是,使用raw方式填写json字符串即可,如图3所示:

图3 成功请求
终于成功注册了一个用户,喜大普奔啊!
另外,如果是传递单个参数,可以使用@RequestParam,那么Postman就可以使用form-data方式传递了,这很简单。
经过这个事情,让我想到了几年前还在写NodeJS项目的岁月,在和腾讯团队和yh团队对接接口的时候,貌似传递post参数也是需要用raw方式传递,否则那边处理不了,腾讯微信后台是用的C++,而yh是用的Java(估计是Spring)。
============= 华丽分隔符 ========================
我司正在高薪招聘各种开发人才,北京、广州 Java高级研发、php高级管理岗位(全国范围,不限制)、测试、运维高级岗位。请在看机会的同学与我私信联系,或者加我微信号沟通:UUUUUTW。我是极客君,欢迎优秀人才用简历敲门,我真心内推!
Postman发送POST请求到Spring Boot的正确姿势的更多相关文章
- postman发送json请求,使用案例
介绍: postman是一个很好的http模拟器,,可以发送get.post.put等各种请求,是测试服务接口相当好的工具. postman发送json请求,使用案例 发送json的具体步骤: 1. ...
- postman发送post请求,报405 Method Not Allowed
postman发送post请求,报405 Method Not Allowed: 亲测有效的方案一: 检查请求header是否缺少必要信息.如果不清可以把所有的头部信息全部粘贴到header中,尝试是 ...
- 【轮询】【ajax】【js】【spring boot】ajax超时请求:前端轮询处理超时请求解决方案 + spring boot服务设置接口超时时间的设置
场景描述: ajax设置timeout在本机测试有效,但是在生产环境等外网环境无效的问题 1.ajax的timeout属性设置 前端请求超时事件[网络连接不稳定时候,就无效了] var data = ...
- Postman发送GET请求带中文
当使用Postman进行GET请求,并且请求参数里携带中文得时候,会请求失败 这时,需要对GET请求参数携带的中文进行编码即可请求成功
- spring boot 服务 正确关闭方式
引言 Spring Boot,作为Spring框架对“约定优先于配置(Convention Over Configuration)”理念的最佳实践的产物,它能帮助我们很快捷的创建出独立运行.产品级别的 ...
- Spring Boot程序正确停止的姿势
Spring Boot提供了2种优雅关闭进程的方式: 基于管理端口关闭进程 基于系统服务方式关闭进程 基于管理端口关闭进程 基于管理端口方式实现进程关闭实际上是模块spring-boot-actuat ...
- Postman 发送http请求工具
http://donglegend.com/2016/10/28/Postman/ Postman 发现一款发送Web API & HTTP 请求的工具,没错,就是Postman.推荐给大家, ...
- postman发送json请求
简介: postman是一个很好的http模拟器,在测试rest服务时是很好用的工具,可以发送get.post.put等各种请求. 发送json的具体步骤: 1.选择post请求方式,同时将heade ...
- postman --发送json请求
转自: http://blog.csdn.net/wangjun5159/article/details/47781301 简介: postman是一个很好的http模拟器,在测试rest服务时是很好 ...
随机推荐
- SQL语句:在两个数据库间复制表结构和数据数据库
一.如果两个数据库在同一台服务器上 1.复制表结构和数据:SELECT * INTO DatabaseB.dbo.TableB FROM DatabaseA.dbo.TableA 2.仅仅复制表结构: ...
- C#LeetCode刷题-广度优先搜索
广度优先搜索篇 # 题名 刷题 通过率 难度 101 对称二叉树 42.1% 简单 102 二叉树的层次遍历 49.7% 中等 103 二叉树的锯齿形层次遍历 43.0% 中等 107 二 ...
- node mssql 无法连接sql server
mssql无法连接sql server主要有两种原因: Sql server使用的是Windows身份验证 Sql server并没有打开网络连接功能 1.打开Sql Server身份验证 参考这篇文 ...
- mac 安卓生成证书(uniapp项目安卓证书申请)
mac 安卓生成证书 义务需求: 最近在开发基于uniapp框架的app,到了打包发布的阶段,来尝试打包为安卓的apk安装包.在用HBuild打包的时候需要提供安卓的数字证书(.keystore 文 ...
- 太厉害了,阿里大牛居然把Git,GitHub总结的这么全面,撸源码去
“版本控制系统”( Version Control System, vcs)是程序代码管理软件的通称,是用来保存程序文件的修改记录以及历史版本,以便日后查看或是使用.Vcs已经有数十年的发展历史,最早 ...
- Git的使用方法及IDEA与Git的集成
一.Git的环境配置 1.Git软件下载 (下载地址:https://git-scm.com/)由于国外的网站下载的超慢可以使用国内的阿里的开源镜像下载(下载地址:https://npm.taobao ...
- 实战开发,使用 Spring Session 与 Spring security 完成网站登录改造!!
上次小黑在文章中介绍了四种分布式一致性 Session 的实现方式,在这四种中最常用的就是后端集中存储方案,这样即使 web 应用重启或者扩容,Session 都没有丢失的风险. 今天我们就使用这种方 ...
- SpringBoot集成Junit
1.在pom.xml下添加Junit依赖: <!--添加junit环境的jar包--> <dependency> <groupId>org.springframew ...
- python基础 Day6
python Day6 id 可以获得python的内存地址 id的举例子 a=100 print(id(a)) #140712544153072 这里就是该对象的内存地址 is 判断的是比较内存地址 ...
- 第4章 SparkSQL数据源
第4章 SparkSQL数据源 4.1 通用加载/保存方法 4.1.1 手动指定选项 Spark SQL的DataFrame接口支持多种数据源的操作.一个DataFrame可以进行RDDs方式的操作, ...