|
@@ -52,6 +52,7 @@ Type
|
|
TMicroRequest = Class(TRequest)
|
|
TMicroRequest = Class(TRequest)
|
|
Private
|
|
Private
|
|
FHandler : TRequestHandler;
|
|
FHandler : TRequestHandler;
|
|
|
|
+ FMyQueryString : String;
|
|
// Return amount of data handled
|
|
// Return amount of data handled
|
|
Procedure DoSetHeader(K,V : String);
|
|
Procedure DoSetHeader(K,V : String);
|
|
Procedure AddQueryField(K,V : String);
|
|
Procedure AddQueryField(K,V : String);
|
|
@@ -321,11 +322,19 @@ begin
|
|
end;
|
|
end;
|
|
|
|
|
|
procedure TMicroRequest.AddQueryField(K, V: String);
|
|
procedure TMicroRequest.AddQueryField(K, V: String);
|
|
|
|
+
|
|
|
|
+Var
|
|
|
|
+ S : String;
|
|
|
|
+
|
|
begin
|
|
begin
|
|
if V<>'' then
|
|
if V<>'' then
|
|
QueryFields.Values[K]:=V
|
|
QueryFields.Values[K]:=V
|
|
else
|
|
else
|
|
QueryFields.Add(K+'=');
|
|
QueryFields.Add(K+'=');
|
|
|
|
+ S:=FMyQueryString;
|
|
|
|
+ if S<>'' then
|
|
|
|
+ S:=S+'&';
|
|
|
|
+ FMyQueryString:=S+K+'='+HTTPEncode(V);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TMicroRequest.AddData(Data: PAnsiChar; DataSize: Size_t): Size_t;
|
|
function TMicroRequest.AddData(Data: PAnsiChar; DataSize: Size_t): Size_t;
|
|
@@ -360,12 +369,7 @@ Var
|
|
I : integer;
|
|
I : integer;
|
|
|
|
|
|
begin
|
|
begin
|
|
- S:=URL;
|
|
|
|
- I:=Pos('?',S);
|
|
|
|
- if (I<>0) then
|
|
|
|
- SetHTTPVariable(hvQuery,Copy(S,I+1,Length(S)-I))
|
|
|
|
- else
|
|
|
|
- MHD_get_connection_values(FHandler.FConnection, MHD_GET_ARGUMENT_KIND,@GetRequestData,Self);
|
|
|
|
|
|
+ MHD_get_connection_values(FHandler.FConnection, MHD_GET_ARGUMENT_KIND,@GetRequestData,Self);
|
|
MHD_get_connection_values(FHandler.FConnection, MHD_HEADER_KIND,@GetRequestData,Self);
|
|
MHD_get_connection_values(FHandler.FConnection, MHD_HEADER_KIND,@GetRequestData,Self);
|
|
for N in FHandler.WebHandler.ExtraHeaders do
|
|
for N in FHandler.WebHandler.ExtraHeaders do
|
|
begin
|
|
begin
|
|
@@ -373,17 +377,19 @@ begin
|
|
If P<>Nil then
|
|
If P<>Nil then
|
|
SetCustomHeader(N,P);
|
|
SetCustomHeader(N,P);
|
|
end;
|
|
end;
|
|
|
|
+ S:=URL;
|
|
|
|
+ I:=Pos('?',S);
|
|
if (I>0) then
|
|
if (I>0) then
|
|
- begin
|
|
|
|
S:=Copy(S,1,I-1);
|
|
S:=Copy(S,1,I-1);
|
|
- end;
|
|
|
|
If (Length(S)>1) and (S[1]<>'/') then
|
|
If (Length(S)>1) and (S[1]<>'/') then
|
|
S:='/'+S
|
|
S:='/'+S
|
|
else if S='/' then
|
|
else if S='/' then
|
|
S:='';
|
|
S:='';
|
|
PathInfo:=S;
|
|
PathInfo:=S;
|
|
-
|
|
|
|
Inherited;
|
|
Inherited;
|
|
|
|
+ // We set this afterwards, otherwise double processing
|
|
|
|
+ if FMyQueryString<>'' then
|
|
|
|
+ SetHTTPVariable(hvQuery,FMyQueryString)
|
|
end;
|
|
end;
|
|
|
|
|
|
{ ---------------------------------------------------------------------
|
|
{ ---------------------------------------------------------------------
|