【问题标题】:file_get_contents("php://input") is emptyfile_get_contents("php://input") 为空
【发布时间】:2016-06-02 23:18:59
【问题描述】:

我正在使用file_get_contents("php://input") 来获取发布请求的正文。但是,当我调用 var_dump() 时,它会以空字符串的形式返回。我检查了 php.ini 配置,allow_url_fopen 设置为 On。

我正在使用邮递员来测试请求。没什么特别的,没有多部分/表单,只是一个带有一些参数的普通帖子。因为我用的是php://input always_populate_raw_post_data 可以配置off吧?

【问题讨论】:

  • 是的,always_populate_raw_post_data 可以关闭。您必须发布更多代码或/和详细信息。根据您的描述,您的代码没有问题。
  • 尝试启用error_reportingdispaly_errors 并检查它是否抛出任何错误
  • 没有更多真正重要的代码了。在我的 php 脚本的最顶部有 var_dump(file_get_contents("php://input")) 然后我只是使用邮递员发出请求。该脚本肯定会受到打击并产生 200 ok,即使我在 url 参数键中传递参数,它只是有一个空字符串:值
  • 显示您如何发布数据(标题、参数)
  • 在邮递员中发送这个帖子请求:beanbagapp.com/beanbag/…

标签: php post file-get-contents


【解决方案1】:

如果您已经指定了值,例如 $str = file_get_contents("php://input");那么当你 var_dump 它将为空。

使用邮递员(Chrome 扩展程序)检查您的帖子值。

【讨论】:

    【解决方案2】:

    是的,您需要启用always_populate_raw_post_data

    参考here

    【讨论】:

    • 没有。 always_populate_raw_post_data 参考$HTTP_RAW_POST_DATA。请仔细阅读您自己的链接。
    猜你喜欢
    • 2018-08-08
    • 1970-01-01
    • 2018-06-08
    • 2012-08-09
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 2012-12-27
    • 2014-06-11
    相关资源
    最近更新 更多