有时候接口问题比较难调, 需要整个完整请求链路过程的记录. 有了请求报文和响应报文,就很好的定位问题. curl是支持打印出这些信息的, 很简单,一行配置搞定. 话不多说,直接上代码(将如下配置放在curl_exec前即可了)
$f = fopen('curl_debug', 'wb');
curl_setopt($ch,CURLOPT_VERBOSE,true);//默认是标准错误输出中
curl_setopt($ch,CURLOPT_STDERR ,$f);//有了该指令,请求过程记录会写到该文件中
文件中内容,大概是如下(本身输出内容是不包含响应body的,有需要你可自己追加在该文件后,便更好查看)
* Trying 14.215.177.39...
* TCP_NODELAY set
* Connected to www.baidu.com (14.215.177.39) port 80 (#0)
> GET / HTTP/1.1
Host: www.baidu.com
Accept: */*
< HTTP/1.1 200 OK
< Accept-Ranges: bytes
< Cache-Control: no-cache
< Connection: keep-alive
< Content-Length: 14615
< Content-Type: text/html
< Date: Tue, 02 Nov 2021 16:34:39 GMT
< Pragma: no-cache
< Server: BWS/1.1
< Vary: Accept-Encoding
* Connection #0 to host www.baidu.com left intact
ps: 有点需要注意, curl本身的bug,导致如果CURLINFO_HEADER_OUT设置为true时(即开启输出响应头), CURLOPT_VERBOSE会不生效.所以你需要将CURLINFO_HEADER_OUT配置去掉.
标签: none
April 2023
January 2023
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
December 2020
November 2020
October 2020
September 2020
June 2020
May 2020
April 2020
March 2020
February 2020
文章 RSS
评论 RSS
Typecho