如何使用TIdHTTP.Post()將參數傳到網頁伺服器? |
缺席
|
mike224
一般會員 發表:7 回覆:8 積分:3 註冊:2002-06-07 發送簡訊給我 |
請教各位先進:
我使用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 發送簡訊給我 |
|
mike224
一般會員 發表:7 回覆:8 積分:3 註冊:2002-06-07 發送簡訊給我 |
終於試出來了:
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 發送簡訊給我 |
|
mike224
一般會員 發表:7 回覆:8 積分:3 註冊:2002-06-07 發送簡訊給我 |
> 請問那將參數傳入後,如何執行那隻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 發送簡訊給我 |
我用了如下代碼,不知道為什麼不行,希望大蝦指正,不勝感激! 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 發送簡訊給我 |
这样的答案是不是你要的?
[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]
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |