Indy + Form + Post的問題 |
答題得分者是:aftcast
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
我有一個這樣的表單
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
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
暫時先用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 發送簡訊給我 |
你又缺太快了一點啦!
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, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |