我很难用PHP脚本使用CURL查询webform。我怀疑,我正在发送网络服务器不喜欢的东西。为了查看CURL真正发送的内容,我希望看到发送到网络服务器的整个消息。
如何设置CURL以获得完整输出?
我做了
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
但是那个onyl给了我标题的一部分。消息内容未显示。
答案 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');
};
?>