如何查看PHP cURL请求正文(如CURLINFO\u HEADER\u OUT for headers)
我可以通过以下方式查看使用php curl发送的请求的标题:如何查看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
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
。这将提供请求头。我想要一些类似的东西,但用于请求主体。