postman使用POST,却收到的是GET请求

这篇具有很好参考价值的文章主要介绍了postman使用POST,却收到的是GET请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

现象:

明明是post请求,到后台却进入了get接口,postman,测试工具,nginx,java

 

可以看到我们postman发出的确实是post请求,message却报错这个接口不支持get请求,说明服务器实际上收到的是一个get请求。

产生原因分析
如果我们访问的是线上的接口,线上的nginx一般都会对http访问做一个302重定向,跳转为https访问。
如果我们正常访问一个页面,它会把http跳转为https,之后由https访问的接口就都是https的了。但如果我们用postman直接访问接口,nginx会响应一个302状态码,并且把重定向的地址存放在响应头Location中。我们的客户端(一般为浏览器,此处为postman)收到302状态码后就会去找Location这个响应头,完成跳转操作。

产生原因验证
通过跳板机查看了测试环境nginx的配置:

location / {
            rewrite ^(.*) https://$server_name$1 permanent;
        }
1


rewrite模块最后的flag是permanent,是301重定向,并不是我们推测的302。不过301处理请求的方式是与302相同的,会把post请求转为get请求。

解决方法
如果我们不指定前缀,则默认是http://,因此解决方法是在我们的请求url最前面加上https:// 即可

明明是post请求,到后台却进入了get接口,postman,测试工具,nginx,java

知识拓展
大部分浏览器会将301、302的post转为get
303的规范强制规定将post请求转为get请求
307规范要求继续向Location地址中post内容
308同样禁止浏览器将post请求转为get请求
301与308对应,302与307对应,307、308分别是前者的禁止转get版本。
也就是说nginx如果使用的是307、308跳转,也就不会出现这样的问题了。当然如果我们没有相应的业务场景,没有必要为了解决postman的问题而使用307、308状态码。文章来源地址https://www.toymoban.com/news/detail-849246.html

到了这里,关于postman使用POST,却收到的是GET请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python中应用requests库模拟postman请求携带token,使用get和post方法请求头携带token

    实际开发中, Python程序中需要调用后台接口 ,充当前端, 后端规定请求头需要携带token postman中 form-data、x-www-form-urlencoded的区别_叫我峰兄的博客-CSDN博客 python requests 带请求头Token发起http请求_python request token_软件测试李同学的博客-CSDN博客 python发送requests请求时,使用登录的

    2024年02月16日
    浏览(33)
  • 使用接口调试软件(PostMan和APIPost)的技巧和注意事项(附加Get和Post请求区别)

    看完这篇文章,不仅能学会使用接口调试软件,还能 高效 的生成接口说明文档 首先,先来告诉各位Get请求和Post请求的区别 (记住:除了标注是Post的请求,其他都是Get请求) Get请求有: (1). form标签method=get (2). a标签 (3). Iink标签引入css (4). Script标签引入js文件 (5). img标签引入

    2024年04月12日
    浏览(31)
  • Postman接口测试之POST、GET请求方法

    1.HTTP的五种请求方法 :GET, POST ,HEAD,OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。 2.接口调用传参方式 :key-value参数形式,Json串传参形式。 key-value参数:把参数拼接在url的后面由?相连,多个参数之间用相连。 Json串传参:需要在请求的body写中,入Json格式参数。 功能说明:

    2023年04月08日
    浏览(36)
  • get/post请求使用工具(apifox/postman/浏览器)能请求通但是java代码不行的问题解决

    一个接口,使用 apifox 、 postman 工具都可以测通; 但是java代码请求不通; 一般来说对于某个接口,只要接口调试工具或者浏览器能请求通,那么接口提供方极大概率没有问题,主要还是请求代码的问题。而请求代码的问题大多数又是请求头 Header 的问题,这类问题的主要解决

    2024年02月02日
    浏览(33)
  • Postman发送post和get请求json数据,并用SpringBoot接受

    1. 在controller类中加入如下代码用于举例 TestContoller.java 这里有两个映射,一个是\\\"/test\\\",用于测试程序有没有成功,一个是\\\"/User\\\",为用户,存放用户的账户名和密码 2. 在dto中导入数据以封装数据 TestDto.java @Data在导入lombok插件和依赖后可以直接使用,可以起到简化代码的作用 在

    2023年04月09日
    浏览(34)
  • HTTP协议 GET和POST区别 请求响应 Fiddler postman ajax

    💖 欢迎来阅读子豪的博客( JavaEE篇 🤴) 👉 有宝贵的意见或建议可以在留言区 留言 💻 欢迎 素质三连 点赞 关注 收藏 🧑‍🚀码云仓库:补集王子的代码仓库 不要偷走我小火车哦~ ~ ~ HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议. HTTP 诞生与1991年

    2023年04月27日
    浏览(33)
  • Postman+Java springboot演示 get post put delete请求并携带(路径 路径问号后 json 表单)参数形式

    我们先创建一个java的springboot工程 在项目中 找到启动类的位置目录 在项目创建一个类 叫 user 我是想将 user 当做一个属性类的 按规范来讲 我们可以创建一个entity包 然后在下面去创建属性类 但这里 我们不想搞那么麻烦了 毕竟只是练习一下 然后 user参考代码如下 这里 只是定

    2024年02月06日
    浏览(34)
  • java中使用hutool调用get请求,post请求

    一、hutool工具包实现 1、get请求 2、post请求 二、java net实现 1、java中http协议调用get请求 2、java中https协议调用get请求

    2024年02月11日
    浏览(31)
  • 使用libcurl请求https的get/post

    最近有个需求,需要用c++请求下我自己的服务器,周末看了一下怎么发起http请求。 官方文档见: https://curl.se/libcurl/c/example.html 官网的demo是基于c的,我用的时候报错了。下面是我写的get/post的方法,同步执行。

    2024年02月07日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包