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

Indy + Form + Post的問題

答題得分者是:aftcast
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-07-08 10:36:48 IP:59.120.xxx.xxx 訂閱
 我有一個這樣的表單 
Username

<input type="text" name="username" /><br />
Password

<input type="text" name="password" /><br />
<input type="button" class="board" value="Try" />

目前有參考:請問有沒有BCB 關於IndyHTTP 模擬瀏覽器POST的實際範例?
實作程式碼如下

var
sl : TStringList;
begin
IdHTTP1.HandleRedirects := True;
sl := TStringList.Create;
sl.Add('username=''1234''');
sl.Add('password=''5678''');
sl.Add('submit=ID_form.submit');
Memo1.Lines.Text := IdHTTP1.Post('http://www.Testing.com/Test.php', sl);
FreeAndNil(sl);
end;

但是卻連結失敗,不知道是哪邊寫錯了呢……
編輯記錄
GrandRURU 重新編輯於 2011-07-07 20:39:58, 註解 Chrome沒辦法使用程式碼區塊 >"<‧
GrandRURU 重新編輯於 2011-07-07 20:41:56, 註解 無‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-07-08 15:50:48 IP:59.120.xxx.xxx 訂閱
暫時先用WebBrowser解了…

po個code給大家參考一下:

procedure TForm1.Button1Click(Sender: TObject);
var
WebDocs, WebTable: OleVariant;
i, j: Integer;
begin
{ 類似像儲存網頁的作法 }
WebDocs := WebBrowser1.Document;
{ 驗證: 所有 Tags = 'table' 的資料 }
Memo1.Lines.Add(WebBrowser1.OleObject.Document.All.Tags('table').Item(0).OuterHtml);
{ 取得文件內的某一張表 }
WebTable := WebDocs.All.Tags('table').Item(StrToInt(edtTableNum.Text));
{ 「列總數」屬性為 [Length] 而不是常用的 [Count] }
for i:=0 to (WebTable.Rows.Length-1) do
begin
for j:=0 to (WebTable.Rows.Item(i).Cells.Length do
begin
{ 錯誤語法: memo1.lines.add(table.rows.item(i).cells.item(j).innertext); // j=1之後會讀取錯誤 }
Memo1.Lines.Add(WebTable.Rows.Item(i).Cells.Item(j));
end;
end;
end;
aftcast
站務副站長


發表:81
回覆:1485
積分:1763
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-07-10 01:36:05 IP:122.126.xxx.xxx 訂閱
你又缺太快了一點啦!

sl.Add('username=''1234''');
sl.Add('password=''5678''');
sl.Add('submit=ID_form.submit');

你上面的那三行應該是有誤的!

sl.Add('password=5678');
sl.Add('submit=Try'); //如果是中文要用 % ,如中文的 確認是 Submit=確定 若編碼是utf8的前題下,big5的 確認則又不用,但還是用%的方式

此外你的header的設定等等也要是正確的,比如Content-Type: application/x-www-form-urlencoded

------


蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2011-07-09 11:38:07, 註解 無‧
系統時間:2024-07-06 8:38:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!