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

讀取https網頁的原始檔

答題得分者是:pcboy
Yu-Fan
一般會員


發表:9
回覆:18
積分:5
註冊:2007-07-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-08-22 09:34:03 IP:60.248.xxx.xxx 訂閱
各位先進們好,請問如何使用IdHTTP的元件讀取https的原始檔(例如:https://admissions.ncyu.edu.tw/ 會出現「安全性警訊」畫面 ),我上google大神搜尋 IdHTTP https,有很多文章,But 怎麼都是Delphi的阿,沒有BCB的範例~~小弟第一次使用IdHTTP的元件,真的不知道該如何下手(讀取Http的網站沒問題),請各位前輩給個方向指導一下,謝謝!!
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-08-25 23:40:11 IP:203.204.xxx.xxx 訂閱
Delphi是Borland/CodeGear的主力開發工具, 範例當然比較多
你可以參考Delphi程式, 自己改寫成BCB程式
哪裡出問題, 再把程式碼貼出來大家研究
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
Yu-Fan
一般會員


發表:9
回覆:18
積分:5
註冊:2007-07-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-08-28 11:21:12 IP:60.248.xxx.xxx 訂閱
void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdHTTP1->Host="127.0.0.1";
IdHTTP1->Port=443;
IdSSLIOHandlerSocket1->SSLOptions->Method=TIdSSLVersion(sslvSSLv23);
IdSSLIOHandlerSocket1->SSLOptions->RootCertFile="test.cer";
IdHTTP1->IOHandler=IdSSLIOHandlerSocket1;
//IdHTTP1->HandleRedirects=true;
try
{
Memo1->Text=IdHTTP1->Get("https://hp.kubtelecom.ru/");
}
catch(...)
{
ShowMessage("FAIL");
}

}
我執行上面的程式後,它都會出現Could not load root certificate,是我寫的程式出問題,或是我給的檔案錯誤??
pcboy 老大,我參考你所發的問題http://delphi.ktop.com.tw/board.php?cid=30&fid=67&tid=89642 ,我從網站上將CA 驗證存成test.cer
這樣的檔案就可以使用了嗎??

pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-08-28 11:28:38 IP:140.92.xxx.xxx 訂閱
你的BCB版本?
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
Yu-Fan
一般會員


發表:9
回覆:18
積分:5
註冊:2007-07-17

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-08-28 12:14:21 IP:60.248.xxx.xxx 訂閱
pcboy 大大
我的BCB 版本為6.0
Indy 版本為9.0.18
已經有抓libeay32.dll 及ssleay32.dll,
不過不知道要怎麼用,只是放在資料夾內而已。
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-08-28 12:34:42 IP:61.220.xxx.xxx 訂閱
請把你寫的程式存檔, 把libeay32.dll 及ssleay32.dll放在程式相同目錄
你的電腦有安裝 Web Server ? 有啟動 HTTPS 服務嗎 ? 有安裝憑證嗎?
(小弟是拿外面的 HTTPS Web Server 實驗)
小弟的範例好像是 Delphi 2007 寫的 , 使用 Indy 10, 他的 SSL 元件和之前版本不同
所以 BCB 6 未必可用

而且小弟那個程式也有問題, 沒有成功; 失敗的程式改寫成 C 也失敗, 沒甚麼好奇怪
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
編輯記錄
pcboy 重新編輯於 2007-08-28 12:36:21, 註解 無‧
Yu-Fan
一般會員


發表:9
回覆:18
積分:5
註冊:2007-07-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-08-28 13:27:56 IP:60.248.xxx.xxx 訂閱
===================引 用 pcboy 文 章===================
請把你寫的程式存檔, 把libeay32.dll 及ssleay32.dll放在程式相同目錄

你的電腦有安裝 Web Server ? 有啟動 HTTPS 服務嗎 ? 有安裝憑證嗎?
(小弟是拿外面的 HTTPS Web Server 實驗)
====================================================
libeay32.dll 以及ssleay32.dll 早已經在我存檔的目錄裡

至於安裝 Web Server ,啟動 HTTPS 服務,安裝憑證這部份有點不懂
要去那下載Web Server??又該如何啟動HTTPS??
安裝憑證是指我要造訪網頁的憑證嗎??










pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-08-28 16:34:46 IP:210.241.xxx.xxx 訂閱
Sorry ! 看的太快, 應該不需要架設
雖然前面(這兩行好像沒用)
IdHTTP1->Host="127.0.0.1";
IdHTTP1->Port=443;
但是實際上後面抓的網頁是
https://hp.kubtelecom.ru/
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
Yu-Fan
一般會員


發表:9
回覆:18
積分:5
註冊:2007-07-17

發送簡訊給我
#9 引用回覆 回覆 發表時間:2007-08-28 17:15:18 IP:60.248.xxx.xxx 訂閱
pcboy,
我覺得我之前驗證的file(test.cer)有問題,現在改成下面的文件
IdSSLIOHandlerSocket1->SSLOptions->RootCertFile="cacert.pem";
已經沒有出現Could not load root certificate
但是卻出現如圖的訊息,不知道你有遇過這問題嗎??

Yu-Fan
一般會員


發表:9
回覆:18
積分:5
註冊:2007-07-17

發送簡訊給我
#10 引用回覆 回覆 發表時間:2007-08-28 17:45:49 IP:60.248.xxx.xxx 訂閱
pcboy,
忘了跟你說前面四個訊息是我用下面程式所讀到的訊息

void __fastcall TForm1::IdSSLIOHandlerSocket1StatusInfo(AnsiString Msg)
{
ShowMessage(Msg);
}

最後一個才是結果~~~

Yu-Fan
一般會員


發表:9
回覆:18
積分:5
註冊:2007-07-17

發送簡訊給我
#11 引用回覆 回覆 發表時間:2007-08-29 17:00:56 IP:60.248.xxx.xxx 訂閱
剛剛重新試了一下,已經不會出現上面的錯誤了,猜測應該是之前研究時,
設定了一大堆不該設定的東西,所以我的IdHTTP與IdSSLIOHandlerSocket有點"髒"
重新拉一次元件後就OK了,不過讀到的只是link那層的body而已。
無意間看到http://delphi.ktop.com.tw/board.php?cid=168&fid=913&tid=76626的文章後
改用WebBrowser元件抓原始檔,好加在可以用,不過前提是得事先裝好CA certificate 的檔案
不然會跳出安全性警訊出來。
雖然已經達到我要的目的了,不過還希望有先進能提供IIdHTTP與IdSSLIOHandlerSocket讀取Https的寫法。





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