2016-05-22 7 views
0

ウィザードを使用してWebBrokerアプリケーションを作成しました。そしてウェブブラウザを使用してDLLをテストした - 私は、IISの下のdll(Server 2012の6.2)を展開ISAPI webbroker requestcontentfieldsが空です(長さ= 0)

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; 

を:それは次のようになりますので、私は、デフォルトのアクションのコードを変更しました。

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

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

http://localhost/MapServer/Mapserver.dll/?param1= "こんにちは" ブラウザが

DataSnapサーバーの両方のケースでxx0x

を出力

Request.ContentFieldsがブラウザからの呼び出しによって生成されていないようです。

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

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

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

答えて

0

は、いくつかの本当に深いGoogleの検索の後、私は答えを見つけました:(エンバカデロのドキュメントは、「MethodTypeがmtPostが」Request.ContentFieldsは、フィールドの内容が含まれていることを述べながら、Request.QueryFieldsための事実上役に立たないドキュメントはmtGetについては何も述べていないことに注意してください)

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; 
関連する問題