当我向服务器发送请求时,我想看到curl所做的请求头。我要怎么检查呢?


当前回答

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 |(它产生几百行输出,但提到了很多选项)。或者找到手册页,那里有更多关于选项含义的解释。

您可以使用wireshark或tcpdump来查看任何网络流量(http也可以)。

向https://http-tools.appspot.com/reflect-http-request/some-unique-id发送一个示例请求,并通过其对应的查找器url https://http-tools.appspot.com/reflect-http-request-finder/some-unique-id检查该请求包含什么(请求头、请求体、请求参数)。你可以使用任何字符串而不是某个唯一的id,查看https://http-tools.appspot.com了解更多细节。

你可以使用-iv来查看

$> curl  -ivH "apikey:ad9ff3d36888957" --form  "file=@/home/mar/workspace/images/8.jpg" --form "language=eng" --form "isOverlayRequired=true" https://api.ocr.space/Parse/Image

这个问题没有指定是指名为curl的命令行命令还是整个curl库。

下面使用cURL库的PHP代码使用第一个参数作为HTTP方法(例如:"GET", "POST", "OPTIONS")和第二个参数作为URL。

<?php
$ch = curl_init();
$f = tmpfile(); # will be automatically removed after fclose()
curl_setopt_array($ch, array(
    CURLOPT_CUSTOMREQUEST  => $argv[1],
    CURLOPT_URL            => $argv[2], 
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_FOLLOWLOCATION => 0,
    CURLOPT_VERBOSE        => 1,
    CURLOPT_HEADER         => 0,
    CURLOPT_CONNECTTIMEOUT => 5,
    CURLOPT_TIMEOUT        => 30,
    CURLOPT_STDERR         => $f,
));
$response = curl_exec($ch);
fseek($f, 0);
echo fread($f, 32*1024); # output up to 32 KB cURL verbose log
fclose($f);
curl_close($ch);
echo $response;

使用示例:

php curl-test.php OPTIONS https://google.com

注意,结果与下面的命令行几乎相同

curl -v -s -o - -X OPTIONS https://google.com