如何使用命令行curl顯示請求標頭

命令行curl可使用-D選項顯示響應頭,但我想查看它發送的請求頭。 我怎樣才能作到這一點? php


#1樓

詳細選項很方便,可是若是你想看到curl所作的一切 (包括傳輸的HTTP主體,而不單單是標題),我建議使用如下選項之一: html

  • --trace-ascii - #stdout
  • --trace-ascii output_file.txt

#2樓

我相信你想要傳遞給curl的命令行開關是-Ishell

用法示例: bash

$ curl -I http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287  
HTTP/1.1 301 Moved Permanently
Date: Sat, 29 Dec 2012 15:22:05 GMT
Server: Apache
Location: http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287/
Content-Type: text/html; charset=iso-8859-1

此外,若是您遇到響應HTTP狀態代碼301,您可能還想傳遞-L參數開關告訴curl遵循URL重定向,而且在這種狀況下,打印全部頁面的標題(包括URL重定向) ,以下圖所示: curl

$ curl -I -L http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287
HTTP/1.1 301 Moved Permanently
Date: Sat, 29 Dec 2012 15:22:13 GMT
Server: Apache
Location: http://heatmiser.counterhack.com/zone-5-15614E3A-CEA7-4A28-A85A-D688CC418287/
Content-Type: text/html; charset=iso-8859-1

HTTP/1.1 302 Found
Date: Sat, 29 Dec 2012 15:22:13 GMT
Server: Apache
Set-Cookie: UID=b8c37e33defde51cf91e1e03e51657da
Location: noaccess.php
Content-Type: text/html

HTTP/1.1 200 OK
Date: Sat, 29 Dec 2012 15:22:13 GMT
Server: Apache
Content-Type: text/html

#3樓

在調試Web應用程序時,我必須本身克服這個問題。 -v很棒,但對個人口味來講有點過於冗長。 這是我提出的(僅限bash)解決方案: ide

curl -v http://example.com/ 2> >(sed '/^*/d')

這是有效的,由於-v的輸出發送到stderr,而不是stdout。 經過這個重定向到一個子shell,咱們能夠sed來除去這樣開始的行* 。 因爲實際輸出不經過子shell,所以不會受到影響。 使用子shell有點笨拙,但這是將stderr重定向到另外一個命令的最簡單方法。 (正如我所說,我只是用它進行測試,因此它適用於我。) 測試


#4樓

curl的-v選項在錯誤輸出中過於冗長,錯誤輸出包含前導* (狀態行)或> (請求頭字段)或< (響應頭字段)。 只獲取請求頭字段: url

curl -v -sS www.stackoverflow.com 2>&1 >/dev/null | grep '>' | cut -c1-2 --complement

只獲取請求頭字段: spa

curl -v -sS www.stackoverflow.com 2>&1 >/dev/null | grep '<' | cut -c1-2 --complement

或者使用-D選項將其轉儲到/tmp/test.txt文件中 命令行

curl -D /tmp/test.txt -sS www.stackoverflow.com > /dev/null

爲了過濾-v輸出,你應該將錯誤輸出定向到終端並將std輸出定向到/ dev / null,-s選項是禁止進度計量


#5樓

顯示響應標頭的流行答案,但OP詢問了請求標頭。

curl -sD - -o /dev/null http://example.com
  • -s - 避免顯示進度條
  • -D - - 將標頭轉儲到文件,可是-將其發送到stdout
  • -o /dev/null - 忽略響應正文

這比-I好,由於它不發送HEAD請求,這會產生不一樣的結果。

它比-v更好,由於你不須要那麼多hack來解開它。

相關文章
相關標籤/搜索