[gelöst] FPHttpClient mag mich nicht mehr

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
icho2099
Beiträge: 53
Registriert: Fr 21. Feb 2020, 19:17
OS, Lazarus, FPC: Win10/64
CPU-Target: 64 Bit
Wohnort: Osterholz-Scharmbeck

[gelöst] FPHttpClient mag mich nicht mehr

Beitrag von icho2099 »

Moin,
ich verwende in einem Tool zur Geo-Codierung tFPHttpClient um eine Adresse an eine URL zu senden und die Geo-Codierung zu erhalten.
Das hat bisher auch immer ohne Probleme funktioniert.
Verwende ich die URL mit den Parametern manuell im Browser, funktioniert das auch.

Aber in meinem Tool tritt jetzt eine Exception wegen einem 403 Error auf.
Soweit ich das verstehe bedeutet das, dass der Server die Anfrage abgewiesen hat, aber warum?

Beispiel für eine im Browser funktionierende Anfrage:
https://photon.komoot.io/api/?q=germany ... de&limit=1

Meldung im Programm bei exakt gleicher URL:
Unexpected response status code: 403.

Code: Alles auswählen

  Function DoTheCoding:Boolean;
  begin
    //URL basteln
    PhotonURL := UGeoCoding.MakePhotonURL(Strasse , FData.PLZ , FData.Ort);
    //Abfrage ausführen
    Res :=  HttpCL.Get(PhotonURL);
    //Ergebnis auswerten
    If UGeoCoding.PhotonResultToGeo(Res , Lat , Lng) then begin
      FData.GeoData.Lat := Lat;
      FData.GeoData.Lng := Lng;
    end else begin
      FData.GeoData.Lat := 0.0;
      FData.GeoData.Lng := 0.0;
    end;
    Result := self.GeoValid;
  end;       
Kann mir da bitte jemand auf die Sprünge helfen ?
Zuletzt geändert von icho2099 am Do 7. Aug 2025, 14:48, insgesamt 1-mal geändert.

wp_xyz
Beiträge: 5247
Registriert: Fr 8. Apr 2011, 09:01

Re: FPHttpClient mag mich nicht mehr

Beitrag von wp_xyz »

In folgendem Schnippsel musste ich das "AddHeader" ergänzen, damit deine URL geladen wird:

Code: Alles auswählen

// Get file from the internet
function Download(URL: String; AStream: TStream; out AErrMsg: String): Boolean;
begin
  AErrMsg := '';
  with TFpHttpClient.Create(nil) do
    try
      try
        AddHeader('User-Agent', 'Mozilla/5.0 (compatible; fpweb)');    // <--- Verhindert 403
        AllowRedirect := true;
        Get(URL, AStream);
        AStream.Position := 0;
        Result := true;
      except
        on E:EHTTPClient do begin
          AErrMsg := E.Message;
          Result := false;
        end;
      end;
    finally
      Free;
    end;
end;

icho2099
Beiträge: 53
Registriert: Fr 21. Feb 2020, 19:17
OS, Lazarus, FPC: Win10/64
CPU-Target: 64 Bit
Wohnort: Osterholz-Scharmbeck

Re: FPHttpClient mag mich nicht mehr

Beitrag von icho2099 »

In folgendem Schnippsel musste ich das "AddHeader" ergänzen, damit deine URL geladen wird:
Perfekt, ich danke dir wp_xyz

Antworten