当我向服务器发送请求时,我想看到curl所做的请求头。我要怎么检查呢?
当前回答
将报头转储到一个文件中,将响应的有效负载转储到另一个文件中
curl -k -v -u user:pass "url" --trace-ascii headers.txt >> response.txt
其他回答
将报头转储到一个文件中,将响应的有效负载转储到另一个文件中
curl -k -v -u user:pass "url" --trace-ascii headers.txt >> response.txt
curl -s -v -o/dev/null -H "Testheader: test" http://www.example.com
如果你想发送HEAD请求而不是GET请求,你也可以使用-I选项。
curl的——trace-ascii选项将显示请求头,以及响应头和响应体。
例如,命令
curl --trace-ascii curl.trace http://www.google.com/
生成文件旋度。开始的跟踪如下:
== Info: About to connect() to www.google.com port 80 (#0)
== Info: Trying 209.85.229.104... == Info: connected
== Info: Connected to www.google.com (209.85.229.104) port 80 (#0)
=> Send header, 145 bytes (0x91)
0000: GET / HTTP/1.1
0010: User-Agent: curl/7.16.3 (powerpc-apple-darwin9.0) libcurl/7.16.3
0050: OpenSSL/0.9.7l zlib/1.2.3
006c: Host: www.google.com
0082: Accept: */*
008f:
它还得到了一个响应(准确地说,是302响应,但不相关),该响应被记录下来。
如果你只想保存响应头,使用——dump-header选项:
curl -D file url
curl --dump-header file url
如果您需要更多关于可用选项的信息,请少使用curl——help |(它产生几百行输出,但提到了很多选项)。或者找到手册页,那里有更多关于选项含义的解释。
唯一的方法,我设法看到我的外向头(卷曲与php)是使用以下选项:
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
获取调试信息:
$data = curl_exec($ch);
var_dump($data);
var_dump(curl_getinfo($ch));
下面是我的http客户端在php使post查询包含cookie:
function http_login_client($url, $params = "", $cookies_send = "" ){
// Vars
$cookies = array();
$headers = getallheaders();
// Perform a http post request to $ur1 using $params
$ch = curl_init($url);
$options = array( CURLOPT_POST => 1,
CURLINFO_HEADER_OUT => true,
CURLOPT_POSTFIELDS => $params,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_HEADER => 1,
CURLOPT_COOKIE => $cookies_send,
CURLOPT_USERAGENT => $headers['User-Agent']
);
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
///调试信息 echo $响应; var_dump (curl_getinfo (ch)美元); ///
// Parse response and read cookies
preg_match_all('/^Set-Cookie: (.*?)=(.*?);/m', $response, $matches);
// Build an array with cookies
foreach( $matches[1] as $index => $cookie )
$cookies[$cookie] = $matches[2][$index];
return $cookies;
} // end http_login_client
推荐文章
- 如何在PHP中捕获cURL错误
- 在Bash中将输出赋给变量
- HTTPS和SSL3_GET_SERVER_CERTIFICATE:证书验证失败,CA is OK
- 如何在Node.js内进行远程REST调用?旋度吗?
- 如何为已安装的Ubuntu LAMP堆栈启用cURL ?
- 为什么cURL返回错误“(23)Failed writing body”?
- 如何POST JSON数据与PHP卷曲?
- 使用curl在PHP中获取HTTP代码
- SSL证书错误:无法获得本地颁发者证书
- 从URL执行bash脚本
- PHP中的cURL是什么?
- 对bash脚本函数中定义的变量使用curl POST
- 使用curl POST multipart/form-data的正确方法是什么?
- PHP -调试Curl
- (1) libcurl不支持或禁用https协议