2012-02-01 61 views
4

我是新來處理cookies,不確定我的代碼或Indy版本是否是基於研究其他帖子的問題。使用Delphi 2010和Indy的餅乾

使用Delphi 2010和Indy 10.5.5。

已經在設計時設置了Cookie管理器。我可以向成功的服務器發送初始登錄請求(使用POST方法)(從服務器應用程序獲取「成功」代碼),並且Cookie管理器顯示它已從服務器接受cookie。

當我嘗試回覆服務器(再次使用POST)獲取下一組信息時,我從服務器應用程序獲取一個錯誤代碼,指示授權失敗,服務器技術人員告訴我支持人們檢查與回覆一起發送的Cookie。

如何檢查發送回服務器的cookie標頭的內容? 此外,在另一篇文章中,我看到Indy 10 IdCookieManager.pas和IdCookie.pas已於2011年更新。我是否應該將Indy更新爲最新版本,因爲這可能是我的問題?

在此先感謝。


下面是更多的一些信息:

感謝您以前的援助;我似乎正在接近重新安裝Indy10。

我清除了我所有Indy的系統,除了我昨天下載的最新版本(10.5.8)。 [其實我只是把舊的東西移動到一個不尋常的名字目錄。]

現在我得到一個乾淨的編譯所有5個包。

我能夠將兩個主包(以dcl開頭的包)添加到我的程序項目列表中。

但是我得到「[DCC致命錯誤] E2202需要的軟件包IndyCore未找到。」當我嘗試編譯我的主程序時。

我嘗試刪除並重新安裝到我的項目的dcl包。當我刪除它們時,我得到了IndyCore和其他3個軟件包也會被刪除的消息 - 所以它似乎知道dclIndyCode140使用IndyCore140。

我已經添加了一些目錄到我的搜索路徑,並嘗試將5 bpl放在不同的目錄中。沒有任何效果,在這一點上我很難過。

想法?建議?被definate建議

史蒂夫

+1

Indy有一個版本號,比文件日期可能更有幫助。右鍵單擊表單上的任何Indy組件,並且版本號位於上下文菜單的頂部項目中。你可以編輯你的文章來提及版本號,而不是現在的日期。這可能會提高您快速獲得答案的機會。 :) – 2012-02-01 00:40:33

+1

更新到Indy 10.5.8是我嘗試做的第一個。我也不安裝Indy軟件包,我只是將Indy添加到項目路徑並在運行時創建組件。 – mjn 2012-02-01 06:28:22

回答

1

升級到最新版本。鏈接在Indy`s website。是的,在早期的Indy 10版本中,Cookie支持被打破,但現在它再次運行。

至於你的其他問題,看看有什麼TIdHTTP正在發送,你有幾個選擇:在發送請求後

  1. 看那TIdHTTP.Request.RawHeaders財產。

  2. 連接Indy的TIdLog...部件之一TIdHTTP,如TIdLogFile,並期待在輸出。

  3. 使用外部數據包嗅探器,例如Wireshark。

+0

我一直在努力將Indy升級到10.5.8,按照Indy網站上的步驟進行操作:按照指示下載文件並獲得全部清理編譯,可以在IDE中安裝dclIndyCore140.bpl設計時間包,但可以獲得dclIndyProtocols140.bpl的以下錯誤 - 「@ Idfips @ initialization $ qqrv的過程入口點無法位於動態鏈接庫IndyProtocols140.bpl中」。 IDfips.pas是隱含的包含;嘗試將其添加到項目中,但仍然有錯誤。有關如何處理這個問題的任何建議? – user1181503 2012-02-02 02:16:29

+0

程序入口點錯誤總是意味着您的計算機上仍然具有較舊的Indy軟件包二進制文件。你並沒有全部刪除它們。當IDE加載dclIndyProtocols140.bpl時,它會依次加載IndyProtocols140.bpl(因爲它是依賴性的),它會在操作系統的DLL搜索路徑中找到較早的版本。 – 2012-02-02 03:19:55

+0

請參閱我原始問題下的'這裏有更多信息'部分。 Indy升級安裝仍然有問題。 – user1181503 2012-02-03 05:37:08