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

如何使用TIdHTTP.Post()將參數傳到網頁伺服器?

缺席
mike224
一般會員


發表:7
回覆:8
積分:3
註冊:2002-06-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-27 11:21:37 IP:202.39.xxx.xxx 未訂閱
請教各位先進: 我使用TIdHTTP.Post()將參數傳到網頁伺服器,但是在ASP程式中用Request.From('xxx') 都讀不到參數? 下列是我的程式:    Delphi程式: Param := TStringList.Create; Param.Text := 'Book=無情大海&Topic=長頸龍'; HTTP.Post('http://127.0.0.1/Discovery/Query.asp', Param) Param.Free; ASP程式: var sBook= Request.Form('Book'); var sTopic= Request.Form('Topic'); 結果在ASP中讀出來都是undefined 但是若改用HTTP.Get('http://127.0.0.1/Discovery/Query.asp?Book=無情大海&Topic=長頸龍'); 則在ASP中可以用Request.QueryString('Book')將參數正確地讀出來, 請教有此經驗的先進們,在HTTP.Post的第二個參數正確格式為何?還是有其他屬性要設定? 我在Indy的Help找不到,煩請指點,謝謝.
hfh
一般會員


發表:1
回覆:5
積分:1
註冊:2002-08-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-08-27 14:20:16 IP:163.28.xxx.xxx 未訂閱
建議你使用sniffer抓取封包看看他post及get裡傳了那些參數,再看看你所送出去的封包,這樣會蠻快找出你的問題所在..... 因為我前些時候也在寫這方面的程式,所以剛開始也有遇到類似你的問題....:)
mike224
一般會員


發表:7
回覆:8
積分:3
註冊:2002-06-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-08-27 15:30:48 IP:202.39.xxx.xxx 未訂閱
終於試出來了: 1.TIdHTTP.Request.ContentType必須設為"application/x-www-form-urlencoded" (可是我在Indy的Help文件卻找不到這個Type?) 2.參數格式和Get大致相同,但不是用"?"開頭,而是用"=&"開頭,否則在ASP呼叫Request.Form會讀不到第1個參數,完整參數值如下: Param.Text := '=&Book=無情大海&Topic=長頸龍'; (有點奇怪,是否TIdHTTP的Bug? 還是本來就這樣?) ps: 另外請教hfh兄,哪裡有sniffer這個軟體? 謝謝
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-08-28 11:25:33 IP:61.218.xxx.xxx 未訂閱
請問那將參數傳入後,如何執行那隻asp程式呢???且讓user看到執行結果?? 發表人 - cyl 於 2002/08/28 11:38:03
mike224
一般會員


發表:7
回覆:8
積分:3
註冊:2002-06-07

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-08-28 16:20:05 IP:202.39.xxx.xxx 未訂閱
> 請問那將參數傳入後,如何執行那隻asp程式呢???且讓user看到執行結果?? 不太清楚您的問題耶? ,我試著猜猜看: > 如何執行那隻asp程式呢??? 以下列的例子來看 Result = HTTP.Post('http://127.0.0.1/Discovery/Query.asp', Param); 網頁伺服器就會執行那隻Query.asp,不是嗎? >且讓user看到執行結果?? 因為呼叫的是後端網頁伺服器,執行結果會傳給Result這個變數,若user使用瀏覽器作為前端那是看不到結果的,不過若是使用ASP撰寫網頁倒是可用微軟的Remote Scripting技術即時向後端伺服器取回結果,顯示在user的瀏覽器上的 祝順利 Mike
hanlg
一般會員


發表:26
回覆:28
積分:10
註冊:2004-02-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-02-01 15:57:01 IP:61.55.xxx.xxx 未訂閱
我用了如下代碼,不知道為什麼不行,希望大蝦指正,不勝感激! DELPHI代碼: procedure TForm1.Button1Click(Sender: TObject); var Param: TStringList; begin Param := TStringList.Create; Param.Text := '=&name=dddd&pwd=111'; IdHTTP1.Post('http://www.aaa.com/add.asp', Param); Param.Free; end; asp頁面代碼: rs(name)=request.Form("name") 提交後可以添加空紀錄,傳上去的參數沒有內容。
------
永遠的DELPHI
japhenchen
高階會員


發表:51
回覆:444
積分:184
註冊:2003-07-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-02-16 18:26:58 IP:211.96.xxx.xxx 未訂閱
这样的答案是不是你要的? [code] procedure TForm1.FormCreate(Sender: TObject); var temp: TStringList; begin temp:=TStringList.Create; temp.add('username=abc'); temp.add('passwd=123'); idHttp1.Post('http://www.ethome.com.cn/userdata/judge.asp',temp); Application.Terminate; end; [code]
系統時間:2024-04-28 8:16:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!