Einzelnen Beitrag anzeigen

Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#1

Http-Request geht im Browser - IdHTTP-Request immer 403 Forbidden

  Alt 4. Dez 2019, 11:16
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.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.

Geändert von Hobbycoder ( 4. Dez 2019 um 11:27 Uhr)
  Mit Zitat antworten Zitat