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

时间:2012-02-23 17:24:20

标签: php debugging curl

我很难用PHP脚本使用CURL查询webform。我怀疑,我正在发送网络服务器不喜欢的东西。为了查看CURL真正发送的内容,我希望看到发送到网络服务器的整个消息。

如何设置CURL以获得完整输出?

我做了

curl_setopt($ch, CURLOPT_VERBOSE, TRUE);

但是那个onyl给了我标题的一部分。消息内容未显示。

4 个答案:

答案 0 :(得分:3)

感谢所有答案!毕竟,他们说这是不可能的。我走了路,熟悉Wireshark。这不是一件容易的事,但绝对值得付出努力。

答案 1 :(得分:1)

您是否尝试过CURLINFO_HEADER_OUT

引用curl_getinfo的PHP手册:

  

CURLINFO_HEADER_OUT - 发送的请求字符串。为此,请添加   通过调用curl_setopt()

来处理句柄的CURLINFO_HEADER_OUT选项

答案 2 :(得分:-1)

如果您想要内容,您不能只记录它吗?我正在为我的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);

答案 3 :(得分:-2)

我建议使用curl_getinfo

<?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');
       };
 ?>