Für ein SMSoverHTTP habe ich das mal gebraucht und hat auch funktioniert. Hoffe es ist kein Fehler drin, letzlich wurde es nur grob getestet und später dann garnicht mehr genutzt (also der Dienst)
Was ich gleich sehe, das hier das encoding für Parameter gemacht wird. Die ganze
Url (also auch mit "/" und ":") sollte so ja nicht encodiert werden. Bei bedarf ValidChars anpassen oder die
Indy's nutzen
Delphi-Quellcode:
function EncodeUrl(AString : String): String;
const
ValidChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUFWXYZ-_.~1234567890';
var
i : Integer;
begin
Result := '';
for i := 1 to Length(AString) do
if Pos(AString[i], ValidChars) <= 0 then
Result := Result + '%' + IntToHex(Ord(AString[i]), 2)
else
Result := Result + AString[i];
end;