查看CURL从PHP脚本发送的内容

查看CURL从PHP脚本发送的内容,php,debugging,curl,Php,Debugging,Curl,我很难使用带有PHP脚本的CURL查询Web表单。我怀疑,我正在发送Web服务器不喜欢的内容。为了查看CURL realy发送的内容,我想查看发送到web服务器的整个消息 如何设置CURL以提供完整输出 是的 但那只奥尼尔给了我一部分头球。消息内容未显示。如果您想要内容,您不能直接记录吗?我正在为我的API调用做类似的事情 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, self::$apiURL); curl_setopt($ch, CURL

我很难使用带有PHP脚本的CURL查询Web表单。我怀疑,我正在发送Web服务器不喜欢的内容。为了查看CURL realy发送的内容,我想查看发送到web服务器的整个消息

如何设置CURL以提供完整输出

是的


但那只奥尼尔给了我一部分头球。消息内容未显示。

如果您想要内容,您不能直接记录吗?我正在为我的API调用做类似的事情

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, self::$apiURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, count($dataArray));
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);

$logger->info("Sending " . $dataString);
self::$results = curl_exec($ch);
curl_close($ch);

$decoded = json_decode(self::$results);
$logger->debug("Received " . serialize($decoded));
或尝试

curl_setopt($ch, CURLOPT_STDERR, $fp);
我建议使用


您是否尝试了
CURLINFO\u HEADER\u OUT

引用PHP手册中的
curl\u getinfo

CURLINFO\u HEADER\u OUT-发送的请求字符串。要使此功能正常工作,请添加 通过调用curl_setopt()将CURLINFO_HEADER_OUT选项添加到句柄


谢谢你的回答!毕竟,他们说这是不可能的。我沿着这条路走下去,熟悉了这条路。这不是一项容易的任务,但绝对值得付出努力。

这不是我想要的。我可以用XDebug检查变量,没问题。我希望看到整个HTTP请求、头和内容,因为它是由CURL发送的。@BetaRide据我所知,如果不使用WireShark或tcpdump,就不可能看到整个内容。最接近的方式是同时显示标题和内容。这只显示了有关响应的很多详细信息。我需要的是所有关于请求的详细信息(即,到Web服务器的内容)。手册正确地说:仅标题。但是我需要整个东西,标题和内容。为什么不把它发布到其他地址并调试呢?如果cURL真的把事情搞砸了,它也可能是谎言。另外,它更有可能是关于标题的。考虑到你想发布一个网络表单(我猜是在你无法控制的网站上),你确定这不是cookies问题吗?或者用户代理。或者别的什么。你为什么不发布你的全部代码,也许我们可以通过这种方式更快地诊断问题。那当然是另一种获得帮助的方式。由于我是我们公司的web服务人员,我希望在出现问题时能够调试CURL。如果您请求https端点,Wireshark将不会提供帮助,因为数据是加密的。
curl_setopt($ch, CURLOPT_STDERR, $fp);
<?php 
curl_exec($ch); 
   $info = curl_getinfo($ch); 
       if ( !empty($info) && is_array($info) { 
          print_r( $info ); 
          } else { 
                  throw new Exception('Curl Info is empty or not an array');
       };
 ?>