線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2953
推到 Plurk!
推到 Facebook!

請問在用idhttp.get網頁時,對方要cookie我將怎樣把cookie傳給它?謝謝!

尚未結案
ziluobu
一般會員


發表:3
回覆:3
積分:1
註冊:2004-07-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-06 19:49:47 IP:218.20.xxx.xxx 未訂閱
我想編個能夠獲取網頁內容的軟體,可是髮現如果對方頁靣需要驗證cookie那麼用idhttp的get就不能直接獲取,請問高手我需要怎樣做?最好有例子,謝謝!
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-06 21:24:33 IP:211.20.xxx.xxx 未訂閱
ziluobu 你好    1.Cookies的取得,一般是經過帳號密碼登入並驗證過後由WebServer產生並隨網頁自動傳到Client端的,而由瀏覽器依設定存放在固定的位置(一般為使用者資料夾下的Cookies目錄)。    2.當有Get及Post的動作時,瀏覽器會自動到該位置檢查是否有目標伺服器產生的Cookies,若有的話(且未過期),則自動隨Get或Post一同傳到目標伺服器。    因此略過第一個產生Cookies的步驟,從第二步來看,Get時如何將Cookies傳給伺服器    1.若有現成的Cookies 且未過期,其實我們也不用額外處理,瀏覽器會自動一起傳過去。 2.若沒有現成的Cookies,就須要在Get或post之前,自己產生並放在正確的位置, 但是要自己產生Cookies,除非你知道該伺服器所產生的Cookies的內容及結構如何,否則就等於駭客的行為了。 3.另一個比較可行的辦法,是由程式代為登入該伺服器,讓該伺服器自動生成Cookies後,在執行Get或Post的動作(一切也都順理成章)。 4.至於由程式代為登錄伺服器,本站之前有人討論過,搜尋一下應該可以找到。 以下連結,參考看看 http://delphi.ktop.com.tw/topic.php?topic_id=18695 http://delphi.ktop.com.tw/topic.php?topic_id=47086 http://delphi.ktop.com.tw/topic.php?topic_id=31987 http://delphi.ktop.com.tw/topic.php?topic_id=48118
ziluobu
一般會員


發表:3
回覆:3
積分:1
註冊:2004-07-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-07 22:15:47 IP:61.144.xxx.xxx 未訂閱
引言: ziluobu 你好 1.Cookies的取得,一般是經過帳號密碼登入並驗證過後由WebServer產生並隨網頁自動傳到Client端的,而由瀏覽器依設定存放在固定的位置(一般為使用者資料夾下的Cookies目錄)。 2.當有Get及Post的動作時,瀏覽器會自動到該位置檢查是否有目標伺服器產生的Cookies,若有的話(且未過期),則自動隨Get或Post一同傳到目標伺服器。 因此略過第一個產生Cookies的步驟,從第二步來看,Get時如何將Cookies傳給伺服器 1.若有現成的Cookies 且未過期,其實我們也不用額外處理,瀏覽器會自動一起傳過去。 2.若沒有現成的Cookies,就須要在Get或post之前,自己產生並放在正確的位置, 但是要自己產生Cookies,除非你知道該伺服器所產生的Cookies的內容及結構如何,否則就等於駭客的行為了。 3.另一個比較可行的辦法,是由程式代為登入該伺服器,讓該伺服器自動生成Cookies後,在執行Get或Post的動作(一切也都順理成章)。 4.至於由程式代為登錄伺服器,本站之前有人討論過,搜尋一下應該可以找到。 以下連結,參考看看 http://delphi.ktop.com.tw/topic.php?topic_id=18695 http://delphi.ktop.com.tw/topic.php?topic_id=47086 http://delphi.ktop.com.tw/topic.php?topic_id=31987 http://delphi.ktop.com.tw/topic.php?topic_id=48118
首先謝謝Chance36兄為我解答,我是要做個網頁爬蟲程序,所以用WebServer控件十分的不方便。我已經用IDHTTP控件的post正確獲取勒cookie如下並把他保存在IdCookieManager1控件裏如下
procedure TForm2.BitBtn1Click(Sender: TObject);
var
temp:tstringlist;
b:string;
begin
form1.Memo1.Text:='';
temp:=tstringlist.Create;
temp.add('url=http://localhost/bbs/main.asp');
temp.Add('username=ziluobu');
temp.Add('userpass=******);
temp.add('xuansave=1');
temp.Add('Submit1= 登录 ');
b:=form1.idhttp1.Post('http://localhost/bbs/login.asp',temp);
form1.memo1.Text:=b;
form2.Hide;
end;
可是就不知道用idhttp.get時怎樣把保存在IdCookieManager1裏的cookie用上!請前輩指點!
ziluobu
一般會員


發表:3
回覆:3
積分:1
註冊:2004-07-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-07-16 15:54:30 IP:211.96.xxx.xxx 未訂閱
这个我题我已经试出来了,可以在idhttp的程序里加一个IdCookieManager控件,用POST方式先到网站上获取cookie然后就能用idhttp.get方式访问有cookie限制的网站了! procedure TForm2.BitBtn1Click(Sender: TObject); var temp:tstringlist; b:string; begin form1.Memo1.Text:=''; temp:=tstringlist.Create; temp.add('url=http://localhost/bbs/main.asp'); temp.Add('username=ziluobu'); temp.Add('userpass=******); temp.add('xuansave=1'); temp.Add('Submit1= 登录 '); b:=form1.idhttp1.Post('http://localhost/bbs/login.asp',temp); form1.memo1.Text:=b; form2.Hide; end; 如果你知道cookie的格式可以直接用add的方法将cookie直接给IdCookieManager赋值!
ziluobu
一般會員


發表:3
回覆:3
積分:1
註冊:2004-07-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-07-16 16:03:11 IP:211.96.xxx.xxx 未訂閱
1、這個問題我已經試齣來勒,可以在idhttp的程序裏加一個idcookiemanager控件,試idhttp的idcookiemanager指嚮idcookiemanager控件,用post方式先到網站上獲取cookie然后就能用idhttp.get方式訪問有COOKIE限製的網站勒! 2、如果妳知道cookie的格式可以直接用add的方法直接將cookie賦值給idcookiemanager,然后直接用idhttp.get獲取頁麵就行勒! procedure TForm2.BitBtn1Click(Sender: TObject); var temp:tstringlist; b:string; begin form1.Memo1.Text:=''; temp:=tstringlist.Create; temp.add('url=http://localhost/bbs/main.asp'); temp.Add('username=ziluobu'); temp.Add('userpass=******); temp.add('xuansave=1'); temp.Add('Submit1= 登录 '); b:=form1.idhttp1.Post('http://localhost/bbs/login.asp',temp); form1.memo1.Text:=b; form2.Hide; end;
glascholar
一般會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-19 15:44:28 IP:221.227.xxx.xxx 未訂閱
帮忙啊 我按照你说的做,可以在cookiemanager里得到cookie 但再get时,cookie怎么也不能送出! 郁闷了好久了...... < >< >
Ktop_Robot
站務副站長


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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-04-26 13:50:43 IP:000.000.xxx.xxx 未訂閱
提問者您好:


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


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


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

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