使用postman发送post请求,却报错不支持get请求的原因

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

场景复现
使用postman发送post请求,却报错不支持get请求的原因

可以看到我们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
2
3
rewrite模块最后的flag是permanent,是301重定向,并不是我们推测的302。不过301处理请求的方式是与302相同的,会把post请求转为get请求。

解决方法
如果我们不指定前缀,则默认是http://,因此解决方法是在我们的请求url最前面加上https:// 即可
使用postman发送post请求,却报错不支持get请求的原因

知识拓展
大部分浏览器会将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-484486.html

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

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

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

相关文章

  • 接口测试|postman发送POST请求

    postman发送POST请求 示例:微信公众平台创建用户标签接口,业务操作如下: 1、打开微信公众平台,微信扫码登录:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 2、打开微信开放文档,找到用户管理-用户标签管理的接口信息: https://developers.weixin.qq.com/doc/offiaccount/Basic_Inf

    2023年04月17日
    浏览(42)
  • postman发送https post请求

    postman发送https post请求 1、点击File选择Setting 2、General中选择ssl认证关闭 3、Certificates中选择点击Add Certificate 4、输入请求服务的IP,点击add 5、选择File new postman window 6、选择请求方式为post 填入url ,request 输入headers参数和依赖token 7、输入body中的值 ,如发送json选择raw,选择js

    2024年02月11日
    浏览(43)
  • postman接口测试之发送post请求

    目录 前言: 一、新建目录文件夹 二、新建请求(api接口)

    2024年02月11日
    浏览(39)
  • Postman发送JSON格式的post请求

    很多同学都习惯了使用发送get请求以及POST请求发送表单数据,但是如何使用postman post请求发送json数据呢. 设置发送数据类型为json  选中raw,并粘贴要发送的json数据.send,就可以看到我们返回的数据了. 

    2024年02月13日
    浏览(36)
  • vue3使用axios发送post请求,后台接收到的参数总是null,使用postman测试后台是能接收数据的

    使用vue3,连基本的请求都失败了,使用浏览器查看post请求,参数中是有值,但是传到后台,每个参数都是null,不知道哪里错了。排除了后台的错误,就剩下了vue代码的错误了。我出错的地方是vue使用axios发送post请求的时候,参数格式写错了。 直接贴代码了,正确的写法 f

    2024年02月13日
    浏览(31)
  • ApiPost6/Postman发送POST请求及日期格式的参数

    Postman在发送POST请求的时候,所有参数写在Request Body(请求体)中,如果需要的参数类型的日期格式的,只需要将日期格式写为2000/01/01即可,Postman会自动识别为日期格式的数据。 如果是2000-01-01格式,Postman无法识别为日期,而是当做普通字符串处理。 实际案例

    2024年02月11日
    浏览(33)
  • postman发送post请求携带json参数获取为null的情况

        @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里    

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

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

    2023年04月09日
    浏览(34)
  • Postman发送post请求时报400错误,Required request body is missing

    项目形参位置存在@RequestBody注解,用Postman发送post请求时报400错误,Required request body is missing。 错误图示: 解决方法: 方法一: 项目中形参位置不使用@RequestBody,在Postman进行Post请求时,在请求路径后直接拼接参数。 方法二: 项目中形参位置使用@RequestBody,在Postman进行Po

    2024年02月11日
    浏览(52)
  • 试试比postman更好用的apipost——如何测试post请求并发送json类型参数

     引言 ApiPost是一个国产的、跟Postman差不多的、用来测试Web API的软件,提供window、mac、linux版本下载,对于有在开发Web API的开发者相当有用,同时由于它是国产软件,完全中文界面更加友好,也符合中国开发者的使用体验。另外支持一键生成api接口文档,省掉不少开发者的工

    2024年02月15日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包