2011-08-24 81 views
55

我使用捲曲檢索cookie,像這樣:發送cookies,捲曲

curl -c cookies.txt url 

然後我解析的cookie我從cookie.txt的文件要與餅乾

curl -b "name=value" url 
再次發送請求

這是發送cookie的正確方法嗎? 有沒有更簡單的方法?

回答

82

您也可以使用-b來指定一個cookie文件來讀取cookie。使用-c-b到同一個文件

在很多情況下是你想要什麼:

curl -b cookies.txt -c cookies.txt http://example.com 

進一步

僅使用-c將捲曲沒有餅乾開始,但仍然理解和解析cookies,如果使用重定向或多個URL,則它將在單個調用中使用收到的cookie,然後將它們全部寫入輸出文件。

-b選項將一組初始cookie提供給curl,以便它在啓動時知道它們,並激活curl的cookie分析器,以便它解析和使用傳入cookie。

此外

cookies chapter看到一切捲曲書。

+5

我希望'--cookie-jar'的手冊頁沒有說「這個命令行選項將激活使curl記錄**並使用** cookie的cookie引擎。「[強調我的]因爲這聽起來就像'--cookie-jar'會導致cookies被髮送,這是錯誤的。 – blahdiblah

+1

@blahdiblah:是的,如果你使用--cookie-jar作爲命令行,第一次接收cookies,然後重定向到第二頁,它將使用來自第一頁的cookie(假設它們匹配等),它不會從任何文件讀取任何初始cookie。 –

+0

是的,手冊頁是誤導性的。我以爲我只是通過使用-c選項來發送cookie,直到我使用-v並看到它沒有發送它們。 – deltaray

4

曲奇文件格式顯然由每個Cookie線的每條線由以下七個製表符分隔的字段:

  • 域 - 創建和可讀取可變域。
  • flag - 指示給定域中的所有機器是否可以訪問該變量的TRUE/FALSE值。該值由瀏覽器自動設置,具體取決於您爲域設置的值。
  • path - 變量有效的域內的路徑。
  • secure - 指示是否需要與域進行安全連接來訪問變量的TRUE/FALSE值。
  • expiration - 變量將過期的UNIX時間。 UNIX時間定義爲自1970年1月1日00:00:00 GMT以來的秒數。
  • name - 變量的名稱。
  • value - 變量的值。

http://www.cookiecentral.com/faq/#3.5

1

,如果你在Firefox安裝Firebug的,只是打開URL。在網絡面板中,右鍵單擊並選擇複製爲cURL。您可以查看此Web通話的所有捲曲參數。