如何查看PHP cURL请求正文(如CURLINFO\u HEADER\u OUT for headers)

如何查看PHP cURL请求正文(如CURLINFO\u HEADER\u OUT for headers),php,curl,Php,Curl,我可以通过以下方式查看使用php curl发送的请求的标题: curl_getinfo($ch, CURLINFO_HEADER_OUT); 我也希望看到正在发送的内容的主体,但我一生都找不到任何方法来这样做。尝试此功能: function url_get_contents ($Url) { if (!function_exists('curl_init')){ die('CURL is not installed!'); } $ch = curl_i

我可以通过以下方式查看使用php curl发送的请求的标题:

curl_getinfo($ch, CURLINFO_HEADER_OUT);
我也希望看到正在发送的内容的主体,但我一生都找不到任何方法来这样做。

尝试此功能:

function url_get_contents ($Url) {
    if (!function_exists('curl_init')){ 
        die('CURL is not installed!');
    }
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $Url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec($ch);
    curl_close($ch);
    return $output;
}

在广泛搜索PHP cURL文档之后,我找不到任何这样的选项

我的解决方案是使用web代理工具

Charles是一个HTTP代理/HTTP监视器/反向代理,它使开发人员能够查看其计算机与Internet之间的所有HTTP和SSL/HTTPS通信。这包括请求、响应和HTTP头(其中包含cookie和缓存信息)


将CURLOPT_HEADER设置为true将返回带有响应主体的头,然后可以将其从响应中解析出来并单独处理。打印输入和输出标题时,应使用类似以下内容:

$url = "https://www.example.com";
$ch = curl_init();

// Configure cURL handle
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_URL, $url);

$x = curl_exec($ch);

print "\nHeaders:\n";

// Get the out headers, explode into an array, and remove any empty string entries
$outHeaders = explode("\n", curl_getinfo($ch, CURLINFO_HEADER_OUT));
$outHeaders = array_filter($outHeaders, function($value) { return $value !== '' && $value !== ' ' && strlen($value) != 1; });
print_r($outHeaders);

// Seperate in headers from body of response
list($inHeaders, $content) = explode("\r\n\r\n", $x, 2);

// Break in headers into array and print_r them
$inHeaders = explode("\n", $inHeaders);
print_r($inHeaders);
router.php

<?=file_get_contents('php://input');
测试旋度:

<?php

$ch = curl_init("http://127.0.0.1:8080/");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Content-Type: application/json",
  "Expect: 100-Continue"
]);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);

$fields = ["bri" => 255];
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode((object)$fields));

$response = curl_exec($ch);

print curl_getinfo($ch, CURLINFO_HEADER_OUT);
print $response;

请重新阅读问题。您的答案返回响应的主体。我正在寻找请求的主体。请查看上面提到的选项:
CURLINFO\u HEADER\u OUT
。这将提供请求头。我想要一些类似的东西,但用于请求主体。