0

ウィザードを使用して WebBroker アプリケーションを作成しました。デフォルト アクションのコードを次のように変更しました。

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
  i: Integer;
begin
  i := Request.ContentLength;
  Response.Content :=
    '<html>' +
    '<head><title>DataSnap Server</title></head>' +
    '<body>DataSnap Server x' +
    Request.ContentFields.Text + 'x' + IntToStr(i) + 'x' +
    '</body>' +
    '</html>';
end;

IIS (6.2 - Server 2012) に dll を展開し、Web ブラウザーを使用して dll をテストしました。

http://localhost/MapServer/Mapserver.dll/?param1=hello

ちょうど良い測定のために私は試しました

http://localhost/MapServer/Mapserver.dll/?param1=「こんにちは」

ブラウザ出力

DataSnap サーバー xx0x

両方の場合において。

Request.ContentFieldsブラウザからの呼び出しによってデータが取り込まれていないようです。

この問題は Delphi や IIS の特定のバージョンに固有のものですか? 私は何を理解していませんか?

シアトルとベルリンの両方を試しましたが、結果は同じです。ありがとう

PS ウィザードを使用して、スタンドアロンの WebBroker も作成しました。この問題はありません。

4

1 に答える 1

0

非常に詳細なGoogle検索の後、答えを見つけRequest.ContentFieldsましRequest.QueryFieldsmtGet:

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
  i: Integer;
begin
  i := Length(Request.QueryFields.Text);
  Response.Content :=
    '<html>' +
    '<head><title>DataSnap Server</title></head>' +
    '<body>DataSnap Server x' +
    Request.QueryFields.Text + 'x' + IntToStr(i) + 'x' +
    '</body>' +
    '</html>';
end;
于 2016-05-22T14:57:17.610 に答える