用 Postman 调接口,GET 能通,一改成提交就报 405 Method Not Allowed;或者抓包看网页登录过程,请求列表里躺着一条 POST。post请求是 HTTP 里最常用的提交数据方式,跟 GET 是两兄弟,分工不同。

POST 和 GET 的核心区别

GET 的参数拼在网址后面,问号后面跟着键值对,长度受网址限制,还会被浏览器缓存和收藏。POST 把数据放进请求体,网址上看不到,没有 URL 长度限制的问题,浏览器一般也不缓存它。所以查数据用 GET,提交、上传、涉及账号密码的多用 POST。

请求体常见的三种格式

  • application/x-www-form-urlencoded:普通表单,键值对用等号和分隔符组织
  • multipart/form-data:带文件上传的表单,图片、附件走这个
  • application/json:前后端分离接口最常用,请求体是一段 JSON 文本

请求体格式必须和请求头里的 Content-Type 对应,接口报参数错误,很多时候就是这里标错了。

命令行怎么发一条 POST

curl -X POST http://example.com/api/login -H 'Content-Type: application/x-www-form-urlencoded' -d 'user=tom&pwd=123'

把地址和参数换成自己的就能试。-H 指定内容类型,-d 后面跟请求体,文件上传再加 -F 参数。

调试和排查的常用点

浏览器按 F12 打开开发者工具,网络面板能看到每条请求的方法、状态码和请求体。接口调试常用 Postman、Apifox 这类工具。服务器返回 405 说明这个地址不接受 POST;返回 415 是 Content-Type 不匹配;提交失败先核对这些,再去怀疑代码。

实际判断:POST 并不天然比 GET 安全,它只是不把参数露在网址里,真要安全得靠 HTTPS 和服务端校验。表单和上传走 POST,查询和分享链接走 GET,按语义选基本不会错。