【问题标题】:How do I get all my 'content' from the Request Body in a POST request?如何在 POST 请求中从请求正文中获取我的所有“内容”?
【发布时间】:2011-06-22 10:36:11
【问题描述】:

标题说明了我的猜测。

我尝试过print_r($_SERVER),但我用 fiddler 发出的“后请求”没有出现。

现在尝试了大约 1 小时后,我真的疯了:S

我真正想要的是在请求正文中发送一个带有 JSON 的 POST 请求。那我想json_decode(request-body); 这样就可以用变量来回复了。所以我不需要把我的变量放在 URL 中

编辑:

这是我的帖子

$url = 'http.........jsonAPI/jsonTestAPI.php';
$post = array("token" => "923874657382934857y32893475y43829ufhgjdkfn");
$jsonpost = json_encode($post);

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonpost);

$response = curl_exec($ch);

curl_close($ch);

【问题讨论】:

  • 向我们展示您的代码...
  • 第一个调用端口应该始终是 phpinfo();在您的 PHP 脚本中查看可用的内容...如果它们有效并设置,您将看到 $_REQUEST 或 $_POST...
  • 我需要建立的是移动应用程序和服务之间的通信。 JSON API 服务。我需要接收一个包含一些可以返回的 feedkey 的数组。但是你不能只在 URL 中放一个数组,所以我想到了一个 JSON POST 请求。
  • 您能否在此处提及您发送 POST 请求的代码块?我认为您错过了以 json 格式提交数据的文件的名称。

标签: php httpwebrequest httprequest


【解决方案1】:

尝试file_get_contents('php://input'); 或 PHP 全局 $HTTP_RAW_POST_DATA

【讨论】:

  • 不知道为什么这被否决了,因为它完全正确。
  • 谢谢 :) file_get_contents('php://input');正是我所需要的。
  • 这也适用于任何其他携带内容主体的 HTTP 方法,例如 PUT。还建议使用 maxlen 参数为允许的内容主体设置最大大小,例如file_get_contents('php://input', null, null, 0, 0x1000).
【解决方案2】:

完成这项工作的最简单方法是将您的 json 放入隐藏的输入字段,然后使用 POST 提交包含表单。

【讨论】:

    猜你喜欢
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 2015-04-12
    • 2018-08-17
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多