Php 显示Curl POST请求头?有办法做到这一点吗?

Php 显示Curl POST请求头?有办法做到这一点吗?,php,curl,request,header,libcurl,Php,Curl,Request,Header,Libcurl,我正在构建一个Curl web automation应用程序,但我的帖子操作没有达到预期效果,我在想如何显示我发送的完整帖子请求(带有标题)时遇到了一些问题,我一直在搜索这个应用程序,但出现的都是响应标题,事实上,我也想要这些,但也想要请求,我在谷歌上找到的帖子似乎都没有提到 我知道我可以用这样的方式显示curl请求的结果(请原谅,如果我的语法是关闭的,我已经用ide和代码关闭了我的虚拟机 $result = curl($curl_exect) ; 无论如何,如果您能给我提供有关如何查看完整

我正在构建一个Curl web automation应用程序,但我的帖子操作没有达到预期效果,我在想如何显示我发送的完整帖子请求(带有标题)时遇到了一些问题,我一直在搜索这个应用程序,但出现的都是响应标题,事实上,我也想要这些,但也想要请求,我在谷歌上找到的帖子似乎都没有提到

我知道我可以用这样的方式显示curl请求的结果(请原谅,如果我的语法是关闭的,我已经用ide和代码关闭了我的虚拟机

 $result = curl($curl_exect) ;

无论如何,如果您能给我提供有关如何查看完整标题的任何建议,我将不胜感激。我最近遇到了完全相同的问题,并且安装了Wireshark(它是一种网络监控工具)。您可以使用它查看所有内容,除了加密流量(HTTPS)。

您可以通过以下操作查看有关传输的信息:

curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);
在请求之前,以及

$information = curl_getinfo($curl_exect);
请求之后

视图:

您还可以在
curl\u setopt

curl\u setopt($curl\u exect,CURLOPT\u头,true);
$httpcode=curl\u getinfo($c,CURLINFO\u HTTP\u代码);
返回$httpcode==200;

这些只是使用标题的一些方法。

您可以使用以下命令自己请求标题:

// open a socket connection on port 80
$fp = fsockopen($host, 80);

// send the request headers:
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data) ."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $data);

$result = ''; 
while(!feof($fp)) {
    // receive the results of the request
    $result .= fgets($fp, 128);
}

// close the socket connection:
fclose($fp);
就像写在

上一样,以下是您所需要的:

curl_setopt($curlHandle, CURLINFO_HEADER_OUT, true); // enable tracking
... // do curl request    
$headerSent = curl_getinfo($curlHandle, CURLINFO_HEADER_OUT ); // request headers

您可以使用以下命令将curl发送的所有头保存到文件中:

$f = fopen('request.txt', 'w');
curl_setopt($ch,CURLOPT_VERBOSE,true);
curl_setopt($ch,CURLOPT_STDERR ,$f);

WireShark运行在WinCap或其他捕获系统上,你必须有一个基于atheros的芯片组才能工作。我想,你为什么不安装chrome并按下
Ctrl+Shift+J
,然后单击
XHR
按钮和文件名,然后查看标题和数据。我尝试了WireShark,但它似乎没有接收到我即将发布的Curl POST trafficI假设你在本地服务器上工作,是这样吗?Robert,我试着按照你在Chrome中所说的做,但当我按Ctrl+Shift+3时,它什么也没做,我正在搜索有关这方面的信息,但似乎找不到相关的东西,Chrome的访问功能是什么?谢谢,我在Chrom中查看标题时发现了这一点e:我相信它的Ctrl+Shift+I可以访问这个。我尝试了这个,但它只是输出了一个帖子数组,所以它没有显示确切的标题,只有帖子,而且与接收服务器看到的不完全一样,所以它不适合进行故障诊断。答案不完整。在执行请求之前,您必须
curl\u setopt($curl\u exect,CURLINFO\u HEADER\u OUT,true);
这只显示服务器返回的内容。它看起来像curl\u setopt($ch,CURLOPT\u VERBOSE,true);将允许您查看发送到服务器的内容。感谢您的帖子,我想我还没有完全理解这一点,因为这是一个与curl不同的库,对吗?有没有办法用just curl实现这一点?如果没有,我将研究一下这样做的方法,只是我不熟悉fputs这实际上是phpth的本机功能这是一个很酷的answ呃,因为它暴露了一种原始的请求。我一直被教导使用cURL,这是一个库,有时必须安装,但并不总是可用。可能的重复:如何显示POST数据?例如,由cURL_setopt($ch,CURLOPT_POSTFIELDS,$postData)添加的数据;@DanDascalescu因为您发布了数据,所以在创建Curl请求时,不需要将其捕获回来。注意:发布表单值作为“表单数据”而不是标题发送,因此上面没有显示它们。如果您确实需要查看线路上的内容,请尝试WireShark。