Skip to content

服务器托管,北京服务器托管,服务器租用-价格及机房咨询

Menu
  • 首页
  • 关于我们
  • 新闻资讯
  • 数据中心
  • 服务器托管
  • 服务器租用
  • 机房租用
  • 支持中心
  • 解决方案
  • 联系我们
Menu

PHP接收不到json格式的数据,用 file_get_contents(‘php://input’) 试试!

Posted on 2023年9月19日 by hackdl

通常情况,PHP获取上游传来的参数,即外部变量,使用 $_POST、$_GET、$_REQUEST 就可以了。

其中,$_REQUEST 是个组合体,默认情况包含了 $_GET,$_POST 和 $_COOKIE。

GET 方式我们知道,通过 URL 传递参数(又叫 query string),只要你的URL带有 query string 就没啥问题;

POST 方式就有点复杂了,$_POST 中获取变量的前提是,发起请求的 Content-Type 必须得是 application/x-www-form-urlencoded 或 multipart/form-data 格式;

因为一般用PHP处理的是网页请求,上面这两种格式都是默认的,所以没啥问题;
而一旦用PHP给第三方提供接口时,就会遇到另一种情况:
第三方使用的 Content-Type 不是上面提到的两种。

纯接口常用的一般是 application/json 格式,当然还有 text/xml、text/plain、stream 等其他类型;
这个情况用 $_GET(或者$_REQUEST) 只能获取第三方写在URL中的参数(该数组不仅仅对GET请求生效,所有带 query string 的请求都可以),而 json 格式的参数,就无能为力了。

这就要用到 file_get_contents('php://input') 了;
php://input 允许读取【请求方】的原始数据, 适用于大多数类型的 Content-type,不止是上面提到的几种,但不能用于 multipart/form-data 类型。
也就是说,当 Content-Type 为 application/x-www-data-urlencoded 时,php://input 获取的数据,和 $_POST 获取的数据一致。

言而总之:

  • 如果用 $_POST、$_GET、$_REQUEST 获取不到参数时,可以用 php://input 打印一下原始数据瞅瞅;
  • 如果和 第三方 对接接口,尽量用 file_get_contents('php://input') 比较稳妥;

服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net

Related posts:

  1. 服务器托管租用费用
  2. 稳妥可靠的XP服务器托管服务
  3. 上海云服务器租用文档详解
  4. 香港服务器托管租用指南
  5. 探究服务器托管中的辐射现象

服务器托管,北京服务器托管,服务器租用,机房机柜带宽租用

服务器托管

咨询:董先生

电话13051898268 QQ/微信93663045!

上一篇: 我用 AI 为 3800 年前的爱情画了套漫画
下一篇: leetcode 46 全排列 permutations【ct】

最新更新

  • Mac SpringBoot项目 Gradle 7.3 转 Maven 手把手教学,包学会~
  • Python直接读取表格是0,这种有什么办法处理吗?
  • 生成式 AI:机会与风险并存,企业该如何取舍?
  • cmd命令常用速记
  • 【Qt6】列表模型——抽象基类

随机推荐

  • 国外IDC托管租用云服务器:稳定高效的全球化选择
  • 企业必知的服务器托管维护重要性
  • “全面介绍服务器托管申请表”
  • 电信2u服务器托管费用详解
  • 大带宽服务器试用

客服咨询

  • 董先生
  • 微信/QQ:93663045
  • 电话:13051898268
  • 邮箱:dongli@hhisp.com
  • 地址:北京市石景山区重聚园甲18号2层

友情链接

  • 服务器托管
  • 机房租用托管
  • 服务器租用托管
©2023 服务器托管,北京服务器托管,服务器租用-价格及机房咨询 京ICP备13047091号-8