PHP-调试Curl

PHP-调试Curl

在发送之前,我想看看请求中的POST字段是什么。(用于调试)。

我正在使用的PHP库(类)已经创建(不是由我创建),所以我试图理解它。

据我所知,它使用curl_setopt()设置不同的选项(如头和诸如此类),然后使用curl_exec()发送请求。

关于如何查看哪些帖子字段被发送的想法?


白衣染霜花
浏览 995回答 3
3回答

绝地无双

您可以启用CURLOPT_VERBOSE备选方案:curl_setopt($curlhandle, CURLOPT_VERBOSE, true);什么时候CURLOPT_VERBOSE,则将输出写入STDERR或使用CURLOPT_STDERR..输出内容非常丰富。您还可以使用tcpdump或wireshark监视网络流量。

青春有我

您可以启用CURLOPT_VERBOSE选项并将该信息记录到(临时)CURLOPT_STDERR://&nbsp;CURLOPT_VERBOSE:&nbsp;TRUE&nbsp;to&nbsp;output&nbsp;verbose&nbsp;information.&nbsp;Writes&nbsp;output&nbsp;to&nbsp;STDERR,&nbsp; //&nbsp;or&nbsp;the&nbsp;file&nbsp;specified&nbsp;using&nbsp;CURLOPT_STDERR.curl_setopt($handle,&nbsp;CURLOPT_VERBOSE,&nbsp;true); $verbose&nbsp;=&nbsp;fopen('php://temp',&nbsp;'w+');curl_setopt($handle,&nbsp;CURLOPT_STDERR,&nbsp;$verbose);然后,您可以在curl完成请求后读取它:$result&nbsp;=&nbsp;curl_exec($handle);if&nbsp;($result&nbsp;===&nbsp;FALSE)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;printf("cUrl&nbsp;error&nbsp;(#%d):&nbsp;%s<br>\n",&nbsp;curl_errno($handle), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;htmlspecialchars(curl_error($handle)));}rewind($verbose);$verboseLog&nbsp;=&nbsp;stream_get_contents($verbose);echo&nbsp;"Verbose&nbsp;information: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n<pre>",&nbsp;htmlspecialchars($verboseLog),&nbsp;"</pre>\n";(我最初回答相似,但范围更广在一个相关的问题中)有关上一次请求的指标等更多信息可通过curl_getinfo..此信息对于调试curl请求也很有用。作为一个用法示例,我通常会将其包装成一个函数:$version = curl_version();extract(curl_getinfo($handle));$metrics = <<<EODURL....: $urlCode...: $http_code ($redirect_count redirect(s) in $redirect_time secs)Content: $content_type Size: $download_content_length (Own: $size_download) Filetime: $filetimeTime...: $total_time Start @ $starttransfer_time (DNS: $namelookup_time Connect: $connect_time Request: $pretransfer_time)Speed..: Down: $speed_download (avg.) Up: $speed_upload (avg.)Curl...: v{$version['version']}EOD;
打开App,查看更多内容
随时随地看视频慕课网APP