DIOCP V5版本中发现的小BUG

单元文件 utils_strings 中

function TDBufferBuilder.ToString: String;
begin
  CheckNeedSize(2);
  FData[FSize] := 0;
  FData[FSize + 1] := 0; 
{$IFDEF MSWINDOWS}
  {$IF (RTLVersion>=26) and (not Defined(NEXTGEN))}
  TEncoding.Default.GetString(FData, 0, self.Length);   //这句有BUG
  {$ELSE}
  Result := StrPas(PAnsiChar(@FData[0]));
  {$IFEND >=XE5}
{$ELSE}  
  Result := TEncoding.Default.GetString(FData, 0, self.Length);
{$ENDIF}
end;

中的

TEncoding.Default.GetString(FData, 0, self.Length);

应修改为

Result := TEncoding.Default.GetString(FData, 0, self.Length);

否则调用 Request.GetBodyAsString; 时,无法获取HTTP 中的 body值

posted @ 2020-04-22 09:43  红枫叶随风  阅读(108)  评论(0)    收藏  举报