@@ -81,7 +81,7 @@ interface
8181 VersionNumber,
8282 RecordCount,
8383 ParamsCount : DWInteger; // new for ver15
84- DataSize : DWInt64; // new for ver15
84+ DataSize : DWInt64; // new for ver15
8585End ;
8686
8787 TTokenValue = Class
@@ -1991,14 +1991,11 @@ implementation
19911991 Cmd := Cmd + URLDecode(Params.Text)
19921992 Else
19931993 Cmd := URLDecode(Query);
1994- // Uri := TIdURI.Create(Cmd);
19951994 Try
1996- // vParams.Delimiter := '|';
19971995 vParams.Text := StringReplace(Cmd, ' &' , sLineBreak, [rfReplaceAll]);
19981996 If vParams.count = 0 Then
19991997 If Trim(Cmd) <> ' ' Then
20001998 vParams.DelimitedText := StringReplace(Cmd, sLineBreak, ' &' , [rfReplaceAll]); // Alterações enviadas por "joaoantonio19"
2001- // vParams.Add(Cmd);
20021999 Finally
20032000 encodestrings := False;
20042001 For I := 0 To vParams.Count - 1 Do
@@ -2024,28 +2021,37 @@ implementation
20242021 If (vParams.names[I] <> ' ' ) And
20252022 (Trim(Query) <> ' ' ) Then
20262023 Begin
2027- JSONParam.ParamName := Trim(Copy(vParams[I], 1 , Pos( ' = ' , vParams[I]) - 1 )) ;
2028- JSONParam.AsString := Trim(Copy(vParams[I], Pos(' =' , vParams[I]) + 1 , Length(vParams[I])));
2024+ JSONParam.ParamName := vParamName ;
2025+ vValue := Trim(Copy(vParams[I], Pos(' =' , vParams[I]) + 1 , Length(vParams[I])));
20292026 If pos(' dwencodestrings' , lowercase(JSONParam.ParamName)) > 0 Then
2030- encodestrings := StringToBoolean(JSONParam.AsString )
2027+ encodestrings := StringToBoolean(vValue )
20312028 Else If (encodestrings) And
20322029 (pos(' dwwelcomemessage' , lowercase(JSONParam.ParamName)) = 0 ) And
2033- (pos(' dwaccesstag' , lowercase(JSONParam.ParamName)) = 0 ) And
2034- (pos(' datacompression' , lowercase(JSONParam.ParamName)) = 0 ) And
2035- (pos(' dwencodestrings' , lowercase(JSONParam.ParamName)) = 0 ) And
2036- (pos(' dwusecript' , lowercase(JSONParam.ParamName)) = 0 ) And
2037- (pos(' dwassyncexec' , lowercase(JSONParam.ParamName)) = 0 ) And
2038- (pos(' binaryrequest' , lowercase(JSONParam.ParamName)) = 0 ) And
2030+ (pos(' dwaccesstag' , lowercase(JSONParam.ParamName)) = 0 ) And
2031+ (pos(' datacompression' , lowercase(JSONParam.ParamName)) = 0 ) And
2032+ (pos(' dwencodestrings' , lowercase(JSONParam.ParamName)) = 0 ) And
2033+ (pos(' dwusecript' , lowercase(JSONParam.ParamName)) = 0 ) And
2034+ (pos(' dwassyncexec' , lowercase(JSONParam.ParamName)) = 0 ) And
2035+ (pos(' binaryrequest' , lowercase(JSONParam.ParamName)) = 0 ) And
20392036 (pos(' dwconnectiondefs' , lowercase(JSONParam.ParamName)) = 0 ) And
20402037 (pos(' dwservereventname' , lowercase(JSONParam.ParamName)) = 0 ) Then
2041- JSONParam.AsString := DecodeStrings(JSONParam.AsString{ $IFDEF RESTDWLAZARUS} , csUndefined{ $ENDIF} );
2038+ Begin
2039+ JSONParam.Encoded := False;
2040+ If MethodType = rtPost Then
2041+ JSONParam.AsString := DecodeStrings(DecodeStrings(vValue{ $IFDEF RESTDWLAZARUS} , csUndefined{ $ENDIF} )
2042+ { $IFDEF RESTDWLAZARUS} , csUndefined{ $ENDIF} )
2043+ Else
2044+ JSONParam.AsString := DecodeStrings(vValue{ $IFDEF RESTDWLAZARUS} , csUndefined{ $ENDIF} );
2045+ End ;
2046+ If JSONParam.IsNull Then
2047+ JSONParam.AsString := vValue;
20422048 End
20432049 Else
20442050 Begin
2045- JSONParam.ParamName := IntToStr(I);
2046- JSONParam.AsString := vParams[I];
2051+ JSONParam.ParamName := IntToStr(I);
2052+ vValue := vParams[I];
20472053 If pos(' dwencodestrings' , lowercase(JSONParam.ParamName)) > 0 Then
2048- encodestrings := StringToBoolean(JSONParam.AsString )
2054+ encodestrings := StringToBoolean(vValue )
20492055 Else If (encodestrings) And
20502056 (pos(' dwwelcomemessage' , lowercase(JSONParam.ParamName)) = 0 ) And
20512057 (pos(' dwaccesstag' , lowercase(JSONParam.ParamName)) = 0 ) And
@@ -2056,7 +2062,16 @@ implementation
20562062 (pos(' binaryrequest' , lowercase(JSONParam.ParamName)) = 0 ) And
20572063 (pos(' dwconnectiondefs' , lowercase(JSONParam.ParamName)) = 0 ) And
20582064 (pos(' dwservereventname' , lowercase(JSONParam.ParamName)) = 0 ) Then
2059- JSONParam.AsString := DecodeStrings(JSONParam.AsString{ $IFDEF RESTDWLAZARUS} , csUndefined{ $ENDIF} );
2065+ Begin
2066+ JSONParam.Encoded := False;
2067+ If MethodType = rtPost Then
2068+ JSONParam.AsString := DecodeStrings(DecodeStrings(vValue{ $IFDEF RESTDWLAZARUS} , csUndefined{ $ENDIF} )
2069+ { $IFDEF RESTDWLAZARUS} , csUndefined{ $ENDIF} )
2070+ Else
2071+ JSONParam.AsString := DecodeStrings(vValue{ $IFDEF RESTDWLAZARUS} , csUndefined{ $ENDIF} );
2072+ End ;
2073+ If JSONParam.IsNull Then
2074+ JSONParam.AsString := vValue;
20602075 End ;
20612076 { $IFDEF RESTDWLAZARUS}
20622077 JSONParam.DatabaseCharSet := DatabaseCharSet;
@@ -2438,3 +2453,4 @@ implementation
24382453
24392454end .
24402455
2456+
0 commit comments