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

如何寫程式發送PCHome的一元簡訊

答題得分者是:allenchan
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-22 18:09:03 IP:203.204.xxx.xxx 未訂閱
看了站上的許多文章, 排除了某些錯誤, 但一直無法成功登入PCHome的發送簡訊網頁, 可否請會的先進幫忙測試一下, 謝謝!! 測試碼如下.
procedure TForm1.BitBtn2Click(Sender: TObject);
Const
  ls_URL = 'http://sms.pchome.com.tw/front_end/sms';
var
  ls_Tag : String;
  lt_Req : TStrings;
begin
  lt_Req := TStringList.Create;      try
    lt_Req.Values['fuid'] := Edit1.Text;
    lt_Req.Values['pwd'] := Edit2.Text;
    lt_Req.Values['submit'] := '登入';
    IdHttp1.Request.ContentType := 'application/x-www-form-urlencoded';
    IdHttp1.Host := ls_URL;
    IdHttp1.HandleRedirects := True;
    ls_Tag := IdHttp1.Post(ls_URL, lt_Req);
    ShowMessage(ls_Tag);
  finally
    lt_Req.Free;
  end;
end;
會出現HTTP/1.1 400 POST not supported. 但可以確定的是他的action如下, 為何會出現 POST not supported <form name="chk_usr" action="/front_end/sms" method="post">
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-23 02:48:01 IP:61.62.xxx.xxx 未訂閱
Maybe you can try another way: IdHTTP1.HandleRedirects = True; ls_Tag = IdHTTP1->Get("http://sms.pchome.com.tw/front_end/Login?fuid=XXXX&pwd=YYYY&errPage=/front_end/sms") ); XXXX replace with your fuid YYYY replace with your pwd Allen Chan
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-23 09:49:49 IP:203.204.xxx.xxx 未訂閱
引言: Maybe you can try another way: IdHTTP1.HandleRedirects = True; ls_Tag = IdHTTP1->Get("http://sms.pchome.com.tw/front_end/Login?fuid=XXXX&pwd=YYYY&errPage=/front_end/sms") ); XXXX replace with your fuid YYYY replace with your pwd Allen Chan
感謝Allen Chan兄, 請問您是如何知道網址要這樣填的呢? 因為從網頁原始檔裡看不出來, 而且他的method都是Post, 為何用Get也可以呢?
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-23 09:56:53 IP:61.62.xxx.xxx 未訂閱
引言:
引言: Maybe you can try another way: IdHTTP1.HandleRedirects = True; ls_Tag = IdHTTP1->Get("http://sms.pchome.com.tw/front_end/Login?fuid=XXXX&pwd=YYYY&errPage=/front_end/sms") ); XXXX replace with your fuid YYYY replace with your pwd Allen Chan
感謝Allen Chan兄, 請問您是如何知道網址要這樣填的呢? 因為從網頁原始檔裡看不出來, 而且他的method都是Post, 為何用Get也可以呢?
jieshu 大大您好,我在 OnRedirect event handler 裡面抓到的,你 post 到 http://sms.pchome.com.tw/front_end/sms 之後,它內部應該是將資料導到 http://sms.pchome.com.tw/front_end/Login 來做處理。
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-23 13:24:20 IP:203.204.xxx.xxx 未訂閱
引言: 我在 OnRedirect event handler 裡面抓到的,你 post 到 http://sms.pchome.com.tw/front_end/sms 之後,它內部應該是將資料導到 http://sms.pchome.com.tw/front_end/Login 來做處理。
感謝Allen Chan的說明, 又學到一招了, 不過又遇到問題了, 他好像要轉到SSL的網頁, 結果就會出現IOHandle的錯誤, 不知Allen Chan兄有何見解? 還是有哪位先進可以指點一下的, 底下列出目前的程式碼
var
  ls_Tag, ls_URL : String;
  lv_Body : Variant;
  lt_Tag : TStringList;
begin
  ls_URL := 'http://sms.pchome.com.tw/front_end/Login?';
  ls_Tag := 'fuid=' + Edit1.Text
          + '&pwd=' + Edit2.Text
          + '&errPage=/front_end/sms';
  IdHttp1.Request.ContentType := 'application/x-www-form-urlencoded';
  IdHttp1.HandleRedirects := True;
  IdHttp1.Host := 'http://sms.pchome.com.tw/front_end/sms';
  lv_Body := VarArrayCreate([0, 0], varVariant);
  lv_Body[0] := IdHttp1.Get(ls_URL + ls_Tag);      ls_URL := 'http://sms.pchome.com.tw/TeleCom/MsgMgr';
  lt_Tag := TStringList.Create;      try
    ls_Tag := IdHttp1.URL.PathEncode(Memo1.Lines.Text);
    lt_Tag.Values['firstClick'] := '0';
    lt_Tag.Values['payType'] := 'PChomeAPBW';
    lt_Tag.Values['mobile01'] := Edit3.Text;
    lt_Tag.Values['year'] := FormatDateTime('yyyy', DateTimePicker1.Date);
    lt_Tag.Values['month'] := FormatDateTime('mm', DateTimePicker1.Date);
    lt_Tag.Values['day'] := FormatDateTime('dd', DateTimePicker1.Date);
    lt_Tag.Values['hour'] := FormatDateTime('hh', DateTimePicker2.Time);
    lt_Tag.Values['minute'] := FormatDateTime('nn', DateTimePicker2.Time);
    lt_Tag.Values['InputMsg'] := ls_Tag;        if RadioButton1.Checked then
      lt_Tag.Values['sendType'] := '1'
    else
      lt_Tag.Values['sendType'] := '2';        lv_Body := VarArrayCreate([0, 0], varVariant);
    lv_Body[0] := IdHttp1.Post(ls_URL, lt_Tag);
  finally
    lt_Tag.Free;
  end;
ps. 他會再導到https://ezpay.pchome.com.tw/auth_form這個網頁, 且需要輸入小額付款認證碼, 再按確認才可以, 且他的action是<form name= "auth_form" method="POST" action="checkAuthForm()">這有解嗎? 發表人 - jieshu 於 2004/11/23 13:35:12
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-23 20:37:17 IP:61.62.xxx.xxx 未訂閱
引言: https://ezpay.pchome.com.tw/auth_form這個網頁, 且需要輸入小額付款認證碼, 再按確認才可以, 且他的action是<form name= "auth_form" method="POST" action="checkAuthForm()">這有解嗎?[/red]
你應該可以看得到它網頁的 checkAuthForm 這個 funciton 的 Source,看看它裡面做些啥事,或許會有解法。
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-23 22:18:34 IP:61.70.xxx.xxx 未訂閱
引言: 你應該可以看得到它網頁的 checkAuthForm 這個 funciton 的 Source,看看它裡面做些啥事,或許會有解法。
壞就在看不到這個Function在哪裡且是做什麼, 底下的連結就是他的原始檔. http://delphi.ktop.com.tw/loadfile.php?TOPICID=18867027&CC=421953
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-11-23 22:56:24 IP:61.62.xxx.xxx 未訂閱
我想 java script 一定會隨著網頁一起下載到 IE 端來執行,或許您試著找找您 IE Temporary 資料夾裡有無 validate.js。    這是原始檔案內的一行碼:

Allen Chan 發表人 - allenchan 於 2004/11/23 22:59:02 發表人 - allenchan 於 2004/11/23 23:00:55
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-11-23 23:49:19 IP:61.70.xxx.xxx 未訂閱
引言: 我想 javascript 一定會隨著網頁一起下載到 IE 端來執行,或許您試著找找您 IE Temporary 資料夾裡有無 validate.js。 這是原始檔案內的一行碼:

Allen Chan
嗯, 真的要好好感謝您, 只怪我網頁設計懂得不多(只會ASP的入門), 沒想到多看看網頁原始檔內容, 已經找到他的action了, 裡面有底下這兩行 document.auth_form.action = "/auth_form_do"; document.auth_form.submit(); 不過要明天才能試看看行不行, 因為還有會出現錯誤訊息尚未解決, 再不行我想可改用WebBrowser, 開啟網頁自動去執行, 不過這部分還沒碰過, 還得再研究研究, 為了感謝Allen Chan兄的指導, 就把這分給您了.
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-11-24 07:54:05 IP:61.62.xxx.xxx 未訂閱
引言: 不過要明天才能試看看行不行, 因為還有會出現錯誤訊息尚未解決, 再不行我想可改用WebBrowser, 開啟網頁自動去執行, 不過這部分還沒碰過, 還得再研究研究, 為了感謝Allen Chan兄的指導, 就把這分給您了.
謝謝您,我之前寫過類似的程式,不過都是用 VB 拉 WebBrower 進來做,感覺上會好做許多。 發表人 - allenchan 於 2004/11/24 10:31:35
jieshu
版主


發表:42
回覆:894
積分:745
註冊:2002-04-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-11-24 15:06:54 IP:203.204.xxx.xxx 未訂閱
引言: 不過要明天才能試看看行不行, 因為還有會出現錯誤訊息尚未解決, 再不行我想可改用WebBrowser, 開啟網頁自動去執行, 不過這部分還沒碰過, 還得再研究研究, 為了感謝Allen Chan兄的指導, 就把這分給您了.
果然真的不行, 已改用WebBrowser做好了, 不過仍然有些許的小問題存在, 發表位址如下: 【Delphi】【發表】用WebBrowser發送PCHome的一元簡訊 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=60330
------
人生有夢,逐夢而行
人若為善,福雖未至,禍已遠離
人若為惡,禍雖未至,福已遠離
http://www.taconet.com.tw/jieshu/
系統時間:2024-05-18 14:47:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!