Hi,
ich versuche von
api.wahrungsrechner.org oder
api.cambio.today mir den aktuellen Umrechnungsfaktor für, in diesem Fall, türkische Lira zu holen.
Delphi-Quellcode:
function EurToTry(API_Key:
string;
var ErrorMsg:
string): Double;
var
http: TIdHTTP;
ss: TStringStream;
jo: TJSONObject;
s:
string;
begin
http:=TIdHTTP.Create(
nil);
http.HandleRedirects:=True;
ss:=TStringStream.Create;
ErrorMsg:='
';
try
try
s:=TIdURI.URLEncode('
http://api.cambio.today/v1/quotes/EUR/TRY/json?quantity=1&key='+API_Key);
//TNetEncoding.Encode gleiche Ergebnis
http.Get(s, ss);
//Hier Haltepunkt und Inhalt von S im Browser funktioniert
jo:=TJSONObject.ParseJSONValue(ss.DataString)
as TJSONObject;
try
Result:=StrToFloat(jo.GetValue('
value').ToString);
ErrorMsg:=http.ResponseText;
finally
if Assigned(jo)
then
jo.DisposeOf;
end;
except
Result:=0;
ErrorMsg:=http.ResponseText;
end;
finally
http.Free;
ss.Free;
end;
end;
Ich bekomme immer "HTTP/1.1 403 Forbidden". Setze ich aber beim http.get mal eine Haltepunkt und kopiere mir den Wert in S in die
Url-Eingabe des Browsers bekomme ich das passende JSON-Ergebins.
Woran könnte das liegen? Über https habe ich es auch schon probiert, genauso wie mit TNetEncoding oder auch Codierung.