* Some responses do not allow a message body, so attempting to read them is not needed, even if content-length is not specified

git-svn-id: trunk@34062 -
This commit is contained in:
michael 2016-07-04 12:24:50 +00:00
parent 743cc27f2f
commit c8354993c1

View File

@ -101,6 +101,7 @@ Type
Procedure SetRequestHeaders(const AValue: TStrings);
procedure SetIOTimeout(AValue: Integer);
protected
Function NoContentAllowed(ACode : Integer) : Boolean;
// True if we need to use a proxy: ProxyData Assigned and Hostname Set
Function ProxyActive : Boolean;
// Override this if you want to create a custom instance of proxy.
@ -457,6 +458,11 @@ begin
FSocket.IOTimeout:=AValue;
end;
function TFPCustomHTTPClient.NoContentAllowed(ACode: Integer): Boolean;
begin
Result:=((ACode div 100)=1) or ((ACode=204) or (ACode=304))
end;
function TFPCustomHTTPClient.ProxyActive: Boolean;
begin
Result:=Assigned(FProxy) and (FProxy.Host<>'') and (FProxy.Port>0);
@ -1034,7 +1040,7 @@ begin
L:=L-R;
until (L=0) or (R=0);
end
else if L<0 then
else if (L<0) and (Not NoContentAllowed(ResponseStatusCode)) then
begin
// No content-length, so we read till no more data available.
Repeat