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

有關NMHTTP和IdHTTP使用上的問題

缺席
tomas850
一般會員


發表:12
回覆:16
積分:5
註冊:2004-01-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-29 17:42:13 IP:61.222.xxx.xxx 未訂閱
我在使用NMHTTP的時候有遇到一個問題, 當我正常使用網路的時候,NMHTTP一切都正常, 但當我網路斷掉再恢復連線的時候, 當我去GET某一頁資料的時候, 就會出現"socket not connected"的訊息。 但NMHTTP並無設定連線的指定如 Connect() 這樣的東西, 我要如何恢復socket的連線呢?? 另外,在我遇到這個問題的時候,我嘗試改用IdHTTP這個物件, 但我如何在IdHTTP這個元件上給網頁的認證碼。 在NMHTP我可以在OnAboutToSend這個事件中下網路的認證碼(類似密碼的東西,我用sinffer捉出來的) 但在IdHTTP並沒有這樣的一個事件。 所以我都讀不到我想要的網頁。 有人在遇過socket not connected這樣的問題嗎??
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-29 20:36:37 IP:61.221.xxx.xxx 未訂閱
引言: 我在使用NMHTTP的時候有遇到一個問題, 當我正常使用網路的時候,NMHTTP一切都正常, 但當我網路斷掉再恢復連線的時候, 當我去GET某一頁資料的時候, 就會出現"socket not connected"的訊息。 但NMHTTP並無設定連線的指定如 Connect() 這樣的東西, 我要如何恢復socket的連線呢?? 另外,在我遇到這個問題的時候,我嘗試改用IdHTTP這個物件, 但我如何在IdHTTP這個元件上給網頁的認證碼。 在NMHTP我可以在OnAboutToSend這個事件中下網路的認證碼(類似密碼的東西,我用sinffer捉出來的) 但在IdHTTP並沒有這樣的一個事件。 所以我都讀不到我想要的網頁。 有人在遇過socket not connected這樣的問題嗎??
tomas850 你好: 先試試看用動態建立/刪除的方式,是否能夠解決你的問題? < class="code"> #include "NMHttp.hpp" void __fastcall TForm1::Button4Click(TObject *Sender) { Memo1->Clear(); TNMHTTP *http=new TNMHTTP(this); http->OnAboutToSend=NMHTTPAboutToSend; http->Get("http://tw.yahoo.com/"); Memo1->Lines->Add(http->Body); delete http; } void __fastcall TForm1::NMHTTPAboutToSend(TObject *Sender) { //...Do something... } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
tomas850
一般會員


發表:12
回覆:16
積分:5
註冊:2004-01-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-30 11:05:17 IP:61.222.xxx.xxx 未訂閱
我試著如同RaynorPao您說的把程式改成這種寫法, 但無法達成我想要的目的,我覺得這行有點怪怪的。 http->OnAboutToSend=NMHTTPAboutToSend; 如果我直接這樣用的話,感覺上是不是無法把http引到 void __fastcall TForm1::NMHTTPAboutToSend(TObject *Sender) { //...Do something... } 這裡面去做處理? 我有試著在NMHTTPAboutToSend加上一個參數來引入http。 但好像對AboutToSend這個事件來說是違法的,無法使用。 目前我在http->OnAboutToSend=NMHTTPAboutToSend; 之後的 http->Get(.....); 感覺上是沒有做用的.......
tomas850
一般會員


發表:12
回覆:16
積分:5
註冊:2004-01-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-31 09:42:01 IP:61.222.xxx.xxx 未訂閱
我用了一個很笨的方法來解決這個問題, 那就是第一次Socket連不起來就再連一次。 也就是用    try {    NMHTTP->Get(......); } catch(ESockError &E) {   try   {     NMHTTP->Get(......)   } }    來解決這個問題。至於動態建立刪除的方式, 我在晚點再來試著改看看。總是要試出來才能多學點東西.....
系統時間:2024-05-13 8:01:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!