全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3500
推到 Plurk!
推到 Facebook!

(Indy)如何用TIdHTTP的Head及Response取得Location資料

尚未結案
starwars
一般會員


發表:1
回覆:0
積分:0
註冊:2005-07-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-07 11:52:55 IP:211.76.xxx.xxx 未訂閱
我是 BCB 新手,從貴站爬文獲得很多心得,謝謝!!! ^_^ 我的問題: 我要解決 302 - Found 的問題,想要取得 Location 欄位內容。 且不要因302 - Found而使 TIdHTTP 出現錯誤 (因為要取得 Location 欄位 故而Handle Redirects 屬性設置為false) 我的程式如下: void __fastcall TForm1::Button1Click(TObject *Sender) { TMemoryStream *ms=new TMemoryStream; TStringList *sl= new TStringList; IdHTTP1->Head("http://10.1.1.1/nf_login?login_type=1&user_id=testing&password=abc"); Memo1->Lines->Add(IdHTTP1->Response->ContentType); Memo1->Lines->Add(IdHTTP1->Response->Date); Memo1->Lines->Add(IdHTTP1->Response->Server); Memo1->Lines->Add(IdHTTP1->Response->Connection); Memo1->Lines->Add(IdHTTP1->Response->Location); } 會出現 "Read Timeout" 的訊息 ,, Memo1 也沒顯示任何東西 Handle Redirects 屬性改為 True,有訊息 是轉向後的,故而沒有 Location 請問各位先進,要如何才能獲得 Location 的資料,且不會出現錯誤訊息。 謝謝。 發表人 - starwars 於 2005/07/07 18:19:32
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-09 12:23:10 IP:61.230.xxx.xxx 未訂閱
starwars 您好:    不知道您是否有其它的特殊要求?但是我使用下列 Get 的方式可以達到您描述的結果,試試看吧:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    TMemoryStream *fs = new TMemoryStream();
    IdHTTP1->HandleRedirects = false;        AnsiString url = "http://www.google.com/";
    AnsiString encodeURL = IdHTTP1->URL->URLEncode(NULL, url);
    IdHTTP1->Get(encodeURL, fs);        Memo1->Lines->Add("");
    Memo1->Lines->Add("ContentType: " IdHTTP1->Response->ContentType);
    Memo1->Lines->Add("Date: " IdHTTP1->Response->Date);
    Memo1->Lines->Add("Server: " IdHTTP1->Response->Server);
    Memo1->Lines->Add("Connection: " IdHTTP1->Response->Connection);
    Memo1->Lines->Add("Location: " IdHTTP1->Response->Location);
    fs->Free();
}    void __fastcall TForm1::IdHTTP1Redirect(TObject *Sender, AnsiString &dest,
      int &NumRedirect, bool &Handled, TIdHTTPMethod &VMethod)
{
    Handled = true;
}
7 天天敲鍵盤 v 時時按滑鼠 8
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-04-18 17:32:48 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-04-30 0:35:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!