ユニットUnit1は、 インターフェース 用途 Winapi.Windows、Winapi.Messages、System.SysUtils、System.Variants、System.Classes、Vcl.Graphics、 Vcl.Controls、Vcl.Forms、Vcl.Dialogs、IdContext、IdCustomHTTPServer、 Vcl.StdCtrls、IdBaseComponent、IdComponent、 IdCustomTCPServer、IdHTTPServer。 入力 TForm1 = クラス(TFormは) IdHTTPServer1:TIdHTTPServerと、 btnStart:TButtonの。 btnStop:TButtonの。 edtIp:TEDIT。 edtPort:TEDIT。 edtRootDir:TEDIT。 LBL1:TLabel; LBL2:TLabel; LBL3:TLabel; edtIndex:TEDIT。 mmo1:TMemoオブジェクト。 手順btnStartClick(送信者:TObjectを); 手順btnStopClick(送信者:TObjectを); 手順IdHTTPServer1CommandGet(AContext:TIdContext; ARequestInfo:TIdHTTPRequestInfo; AResponseInfo:TIdHTTPResponseInfo)。 手順FormCreate(送信者:TObjectを); プライベート { プライベート宣言} 公共 { 公開宣言} エンド。 VAR をForm1:TForm1; 実装 { $ R * .DFM } // IdGlobalを使用しています。// IndyTextEncoding_UTF8 VAR ROOTDIR:文字列; URL:文字列; 手順TForm1.btnStopClick(送信者:TObjectを); 開始 IdHTTPServer1.Activeを: = falseは、 エンド; 手順TForm1.FormCreate(送信者:TObjectを); 開始 edtip.Textを: = ' 127.0.0.1 ' 。 edtport.Text: = ' 8008 ' ; edtIndex.Text: = ' A.TXT ' ; btnStartClick(btnstart)。 エンド; 手順TForm1.btnStartClick(送信者:TObjectを); 始める ならば IdHTTPServer1.Activeはその後、終了。 試し IdHTTPServer1.Bindings.Clear; // バインドするポート、これを設定する必要があり、これが結合する実際のポートがあり、 IdHTTPServer1.DefaultPort:= strtoint(TRIM(edtport.Text)); IdHTTPServer1.Bindings.Add。 IP: = TRIM(edtip.Text); // サーバの起動 IdHTTPServer1.Activeを:= 真; 除く ShowMessage(' 開始できませんでした!' ); エンド; // ROOTDIR:= TRIM(edtrootdir.Text); ROOTDIR:= ExtractFilePath( Application.ExeName); URL: = ' HTTP:// ' + TRIM(edtip.Text)+ TRIM(edtport.Text)+ ' / '; // ブラウザがhttp://127.0.0.1:8008/index.html?a=1&b=2要求 終了、 手順TForm1.IdHTTPServer1CommandGet(AContext:TIdContext; ARequestInfo:TIdHTTPRequestInfo; AResponseInfo:TIdHTTPResponseInfo); VAR LFilename:文字列; LPathname:文字列; 中文:文字列; 始める // ブラウザ要求http://127.0.0.1:8008/index.html?a=1&b=2 // ARequestInfo.Documentリターン/index.htmlが // リターンARequestInfo.QueryParams 2. IB = = // ARequestInfo.Params.Values [ '名前']受信取得、オーバー後のデータ @ 1つのパラメータを取得する // mmo1.Lines.Clear。 // mmo1.Lines.Add(ARequestInfo.Document)。 // mmo1.Lines.Add(arequestinfo.Params.Values [ 'A'])。 // mmo1.Lines.Add(arequestinfo.Params.Values [ 'B'])。 // 2 Webサーバ发文件 // LFilename:= ARequestInfo.Document。 // もしLFilename = '/'を // 開始 // LFilename:=「/'+trim(edtIndex.Text)。 // 終了。 // LPathname:= ROOTDIR + LFilename。 // FILEEXISTS IF(LPathname)を // 開始 // AResponseInfo.ContentStream:= TFileStream.Create(LPathname、fmOpenRead + fmShareDenyWrite); //发文件 // 端 // 他 // 開始 // // AResponseInfo.ContentType:= 'テキスト/ HTML;のcharset = GB2312'; // AResponseInfo.ResponseNo:= 404; // AResponseInfo.ContentText:= 'が見つかりません' + ARequestInfo.Document ; // //が見つかっ、3つの文字はバグと考えられ、文字化け // ; END // 。発行3 HTMLドキュメント @ = 'text / htmlの;のcharset = GB2312';:AResponseInfo.ContentType // / / AResponseInfo.WriteContent; // AResponseInfo.ContentText:= '<HTML> <BODY> dsdddddこんにちは良いヘクタール</ BODY> </ HTML>'; // 4 xmlファイルが発行した。 AResponseInfo.ContentTypeを:= " text / xmlで;文字セット= GB2312 "; AResponseInfo.ContentText: = ' <?xmlのバージョン= "1.0"エンコード= "UTF-8"> ' + ' <学生> ' + ' <学生のセックス= "男性"> <名前> ' + ' 陈' + " </名前> <年齢> 14 </年齢> </学生> ' + ' <学生のセックス= "女"> <名前> BB </名前> <年齢> 16 </年齢> </学生> ' + ' </学生> " ; ファイル名= " '+名+'" '; } //; AResponseInfo.ServeFile(AContext、 'A.TXT') // これだけはダウンロード1とフレームを果たし @ 6は、IISで置き換えられる @ AResponseInfo.Server:= 'IIS / 6.0'; // AResponseInfo.CacheControl:= 'キャッシュ-NO '; // AResponseInfo.Pragma:=' NO-キャッシュ「; // AResponseInfo.Date:=Now; エンド; エンド。
デルファイHTTPサーバー
おすすめ
転載: www.cnblogs.com/tobetterlife/p/12171472.html
おすすめ
ランキング