AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke RESTClient Basic Auth. funkt nicht
Thema durchsuchen
Ansicht
Themen-Optionen

RESTClient Basic Auth. funkt nicht

Ein Thema von Kostas · begonnen am 13. Dez 2017 · letzter Beitrag vom 19. Dez 2017
Antwort Antwort
Seite 1 von 2  1 2      
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

RESTClient Basic Auth. funkt nicht

  Alt 13. Dez 2017, 22:37
Hallo Zusammen,

das mitgelieferte Beispiel Embarcadero REST-Library Demos funktioniert einwandfrei um eine Verbindung auf Delphi-PRAXIS durchzuführen.
Genau dieses Beispiel verwende ich als Basis zu einem Service auf Mobile.de zuzugreifen. In der Doku ist ein Beispiel über das tool curl.
Da sieht die connection so aus:


Code:
curl -k -x api.test.sandbox.mobile.de:8080  -basic -u meinUsername:meinPasswort -X GET "https://services.mobile.de/seller-api/sellers/" -H "Accept: application/vnd.de.mobile.api+json" | jq
Das versuche ich jetzt über Delphi und zwar so:

Delphi-Quellcode:
HTTPBasicAuthentificator.Username := xxx;
HTTPBasicAuthentificator.Password := yyy;


RESTRequest.Accept := 'application/vnd.de.mobile.api+json'; <<< ist das so richtig? Mobile.de meint der String muss im Header stehen.
RESTRequest.Resource := 'https://services.mobile.de/seller-api/sellers/';

RESTClient.BaseURL := 'https://api.test.sandbox.mobile.de:8080';

RESTRequest.Execute;
Bei Ausführen bekomme ich die Meldung "REST-Anforderung fehlgeschlagen: Fehler beim Abruf des Serverzertfikats."
Egal welchen Username oder Passwort übergebe, kommt die gleiche Fehlermeldung.

Da die Base URL https ist, könnte das die Ursache sein? Brauche ich dafür die SSL Libs? Das Delphi Beispiel connectet sich als Base-URL per HTTP.
Die Verbindung lauf Mobile.de soll über Basic-Authentification erfolgen.

Hat hat jemand eine Idee?
Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#2

AW: RESTClient Basic Auth. funkt nicht

  Alt 14. Dez 2017, 09:10
Die Fehlermeldung hat auf jeden Fall was mit dem https zu tun.

Zur abfrage der Usernamen und der Passwortes kommt es erst gar nicht.

Vielleicht ist es ja auch möglich, zum testen ohne https zu arbeiten sondern nur mit http. Änder doch zum Test einfach mal die Url auf http.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: RESTClient Basic Auth. funkt nicht

  Alt 14. Dez 2017, 09:58
Danke für die Info,

wenn die BaseURL und Resource-URI jeweils http ist, kommt die Meldung "The requested URL could not be retrieved"
Es wird ein html content gesendet. Bei Interesse kann ich den html content anhängen.

Ist es generell nicht möglich über die Delphi RESTClient Komponente HTTPS Verbindungen als Basic-Auth. herzustellen?
Das HTTPS generell nicht funktioniert wird nicht der Falls sein da das mitgelieferte Beispiel stellt auch eine Verbindung zu Twitter und co über https her. Die https Beispiele verwenden allerdings Auth1 und Auth2 mit Zertifikate und so ein Kram.

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: RESTClient Basic Auth. funkt nicht

  Alt 14. Dez 2017, 10:19
Weist Du den Authenticator zu?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: RESTClient Basic Auth. funkt nicht

  Alt 14. Dez 2017, 12:47
Weist Du den Authenticator zu?
Ja klar, ich habe die Beispielanwendung verwendet, einen neune Tab für meine Verbindung, alle Komponenten aus dem Beispiel Delphi-Praxis kopiert.
Gruß Kostas
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: RESTClient Basic Auth. funkt nicht

  Alt 15. Dez 2017, 11:05
Hallo Zusammen,

kann es generell an der Delphi Komponente RESTClient und co liegen?
Hat jemand Erfahrung mit alternativen Komponenten die das könnten.
Beim suchen bin ich auf das Project Mars Curiosity gestossen. Könnte das etwas sein?

https://blog.andreamagni.eu/2016/03/...-rest-library/

Gruß Kostas
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: RESTClient Basic Auth. funkt nicht

  Alt 15. Dez 2017, 11:46
Hallo,
nein, REST geht eigentlich immer.
Das Problem ist immer, herauszufinden, welche Verbindungsoptionen der Server erwartet.
Heiko
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: RESTClient Basic Auth. funkt nicht

  Alt 15. Dez 2017, 12:17
Hallo Heiko,

ok, die Info ist schon mal sehr erfreulich.
Das Problem ist die BaseUSL ist eine https und eine Basic-Authentification.
Es gibt aber nur einen HTTPBasicAuthentificator. Meinst du dass es dennoch funktionieren müsste?

Die Zugangsdaten habe ich mit dem Empfohlenen Tool "curl" testen können, die passen.
Hast du noch eine Idee?

Gruß Kostas
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: RESTClient Basic Auth. funkt nicht

  Alt 15. Dez 2017, 12:54
Hallo
hier wurde noch ein anderer Ansatz für Basic Authentication benutzt:

http://www.delphipraxis.net/122473-i...ntication.html

Aber ich sehe, das war nicht https.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: RESTClient Basic Auth. funkt nicht

  Alt 15. Dez 2017, 15:42
Ich sehe gerade, dass die Resource-property fehlerhaft gesetzt zu sein scheint. Der Request wird aus BaseURL und Resource zusammengesetzt.
Hier mal ein kleines Beispiel für einen JIRA-Rest-Request:

Delphi-Quellcode:
function GetAuthenticator : THTTPBasicAuthenticator;
begin
  Result := THTTPBasicAuthenticator.Create(TConfig.Username, TConfig.Password);
end;

function GetIssuesForUser(const AUserName : string) : TIssueList;
var
  LIssue : TIssue;
  RESTClient : TRESTClient;
  RESTRequest : TRESTRequest;
  JSONValue : TJsonValue;
  JSONObject : TJSONObject;
  JSONArr : TJSONArray;
  i : Integer;
begin
  Result := TIssueList.Create;
  RESTClient := TRESTClient.Create(TConfig.BaseURL);
  RESTClient.Authenticator := GetAuthenticator;
  {$IFDEF FIDDLER}
  // Zum Test mit Fiddler
  RESTClient.ProxyPort := 8888;
  RESTClient.ProxyServer := '127.0.0.1';
  {$ENDIF}

  RESTRequest := TRESTRequest.Create(RESTClient);
  RESTRequest.Method := TRESTRequestMethod.rmGET;
  RESTRequest.Resource := 'search?jql=assignee={username}+'+
                          'AND+status+in+("'+TConfig.Filter+'")'+
                          '&fields=key,summary,status';
  try
    RESTRequest.Params.AddItem('username', AUserName, TRESTRequestParameterKind.pkURLSEGMENT);
    RESTRequest.Execute;
    if RESTRequest.Response.StatusCode = 200 then
    begin
      // JSON zerpflücken
      JSONValue := RESTRequest.Response.JSONValue;
      if JSONValue is TJSONObject then
      begin
         JSONArr := TJSONArray(TJSONObject(JSONValue).GetValue('issues'));
         for i := 0 to JSONArr.Size -1 do
         begin
           LIssue := TIssue.Create;
           Result.Add(LIssue);
           JSONObject := TJSONObject(JSONArr.Get(i));
           GetIssueData(JSONObject, LIssue);
         end;
      end;
    end;
  except
    On E: Exception do
    begin
      LIssue := TIssue.Create;
      LIssue.Key := E.Message;
      Result.Add(LIssue);
    end;
  end;
  RESTRequest.Free;
  RESTClient.Authenticator.Free;
  RESTClient.Free;
end;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz