【问题标题】:can't retrive raw post data using file_get_contents('php://input')无法使用 file_get_contents('php://input') 检索原始帖子数据
【发布时间】:2016-08-29 10:09:02
【问题描述】:

这是我的代码。我正在使用 post 方法发布我的数据。

$post_body = file_get_contents('php://input');
if(getenv('REQUEST_METHOD') == 'POST'){
    print_r( array( "3","3d"));
}
print_r($post_body);

我正在使用 chrome 的邮递员来测试这段代码,但它不打印发布数据,请参阅输出图像。

我做错了什么???

编辑

为了展示我如何解决我的问题,我添加了这张图片。

【问题讨论】:

    标签: php post file-get-contents postman


    【解决方案1】:

    根据PHP documentation

    php://input 不适用于 enctype="multipart/form-data"。

    Postman 支持不同类型的Content-Type,包括multipart/form-data,这似乎是默认的。

    所以请确保您不要使用multipart/form-data(在Body 标签中)。

    【讨论】:

    • 这不是multipart/form-data 错误,但您的回答为我提供了解决问题的线索,谢谢
    • 我还是有同样的问题。 @Archish 请告诉我您所做的解决方案。
    • @boi_echos 你在用邮递员吗??如果是,那么 json(我正在传递的问题)应该在 body 标记中传递。如果选项卡错误,我正在传递 json。
    • @boi_echos 我在我的问题中附上了图片,这样做我的错误就解决了,我不确定这是否对你有帮助。如果您创建新问题,请在评论中告诉我我已尝试解决您的问题
    【解决方案2】:

    我在测试 symfony 端点时遇到了类似的问题,但原因完全不同:

    我的班级只有函数。我做了一个

    var_dump(file_get_contents('php://input'));
    

    在我的函数的第一行,它恰好是类中的第一个函数。即使参数正确,这也会返回 empty("")。

    我的问题是我忘记使用 FULL 路由到此,但由于邮递员无论如何都试图运行此功能,让我有太多时间去注意。 希望能帮助到你!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-21
      • 2011-06-28
      • 2018-08-08
      • 2013-09-10
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      相关资源
      最近更新 更多