我正在构建一个Curl Web自动化应用程序,并且遇到了一些问题,我没有获得所需的POST操作结果,我在查找如何显示我发送的完整POST请求时遇到了一些问题(带有标题),我一直在搜索这个,但所有出现的是响应标题,实际上我也想要这些,但也请求,我在谷歌上找到的帖子似乎都没有提到..
我知道我可以使用类似的东西显示curl请求的结果(请原谅我,如果我的语法关闭,我已经用我的ide和代码关闭我的虚拟机来引用
$result = curl($curl_exect) ;
无论如何,我非常感谢有关如何查看完整标题的任何建议,谢谢
答案 0 :(得分:161)
以下是您所需要的一切:
curl_setopt($curlHandle, CURLINFO_HEADER_OUT, true); // enable tracking
... // do curl request
$headerSent = curl_getinfo($curlHandle, CURLINFO_HEADER_OUT ); // request headers
答案 1 :(得分:67)
您可以通过以下方式查看有关转移的信息:
curl_setopt($curl_exect, CURLINFO_HEADER_OUT, true);
在请求之前,
$information = curl_getinfo($curl_exect);
请求后
您还可以使用CURLOPT_HEADER
curl_setopt
curl_setopt($curl_exect, CURLOPT_HEADER, true);
$httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE);
if($httpcode == 200) {
return true;
}
return false;
这些只是使用标题的一些方法。
答案 2 :(得分:9)
您可以使用以下命令将curl发送的所有标题保存到文件中:
$f = fopen('request.txt', 'w');
curl_setopt($ch,CURLOPT_VERBOSE,true);
curl_setopt($ch,CURLOPT_STDERR ,$f);
答案 3 :(得分:6)
您可以使用以下方式让自己请求标题:
// 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);
喜欢写在how make request
上答案 4 :(得分:3)
我最近遇到了完全相同的问题,我安装了Wireshark(它是一个网络监控工具)。除加密流量(HTTPS)外,您可以使用此功能查看所有内容。