2 fixes which I need: E2506 from Delphi 2010 compiler, Indy makes up useless authentication data.

Doesn't compile in Delphi 2010 anymore. Using RestJsonUtils from SuperObject even in the implementation section breaks D2010's Generics leading to a E2506 pointing to RestJsonGenerics: Result := ctx.AsType<T>(SuperObject.SO(text));
One can't supply (basic) authentication data by SetHeaders in a way that would survive a 40x error from the server using the Indy implementation. Indy tries to use it's user name and password fields to construct an authentication object to retry the connection  and stores that. This data supersedes every authentication header set by SetHeaders if it exists. As user name and password are both '' a (hopefully) invalid basic auth header is sent instead of the one supllied with SetHeaders.