ISAPI webbroker requestcontentfields 为空(长度 = 0)
ISAPI webbroker requestcontentfields is empty (length = 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,并使用网络浏览器测试了 dll。
http://localhost/MapServer/Mapserver.dll/?param1=hello
为了更好的衡量,我试过了
http://localhost/MapServer/Mapserver.dll/?param1="hello"
浏览器输出
DataSnap Server xx0x
在这两种情况下。
Request.ContentFields
似乎没有被来自浏览器的调用填充。
此问题是否特定于 Delphi and/or IIS 的特定版本?我有什么不明白的?
西雅图和柏林我都试过了,结果是一样的。
谢谢
P.S。我还使用该向导制作了一个独立的 WebBroker。没有这个问题。
经过一些非常深入的 Google 搜索,我找到了答案:(请注意,虽然 Embarcadero 文档指出 Request.ContentFields
包含字段 "when the MethodType is mtPost" 的内容,但实际上没有用的文档对于 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;
我使用向导创建了一个 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,并使用网络浏览器测试了 dll。
http://localhost/MapServer/Mapserver.dll/?param1=hello
为了更好的衡量,我试过了
http://localhost/MapServer/Mapserver.dll/?param1="hello"
浏览器输出
DataSnap Server xx0x
在这两种情况下。
Request.ContentFields
似乎没有被来自浏览器的调用填充。
此问题是否特定于 Delphi and/or IIS 的特定版本?我有什么不明白的?
西雅图和柏林我都试过了,结果是一样的。 谢谢
P.S。我还使用该向导制作了一个独立的 WebBroker。没有这个问题。
经过一些非常深入的 Google 搜索,我找到了答案:(请注意,虽然 Embarcadero 文档指出 Request.ContentFields
包含字段 "when the MethodType is mtPost" 的内容,但实际上没有用的文档对于 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;