通常,在POST请求中发送的数据是MIME类型为的结构化键/值对application/x-www-form-urlencoded。但是,许多应用程序(例如Web服务)需要发送通常以XML或JSON格式的原始数据。可以使用以下两种方法之一读取此数据。
php://input 是提供对原始请求正文的访问的流。
$rawdata = file_get_contents("php://input"); // 假设我们有JSON $decoded = json_decode($rawdata);
$HTTP_RAW_POST_DATA是包含原始POST数据的全局变量。仅当启用always_populate_raw_post_datain指令时才可用php.ini。
$rawdata = $HTTP_RAW_POST_DATA; // 也许我们得到XML $decoded = simplexml_load_string($rawdata);
自PHP版本5.6起已弃用该变量,并在PHP 7.0中将其删除。
请注意,当内容类型设置为时,这两种方法均不可用multipart/form-data,用于文件上传。