HTTPS Abfrage funktioniert nicht

Alle Fragen zur Netzwerkkommunikation

HTTPS Abfrage funktioniert nicht

Beitragvon DL3AD » 19. Dez 2017, 14:29 HTTPS Abfrage funktioniert nicht

Hallo,

eine HTTP "GET" Abfrage will nicht - hier der Code
Code: Alles auswählen
 
//LOTW Daten abfragen
procedure TForm1.BtnLoadClick(Sender: TObject);
var
   http  : THTTPSend;
   DAnsw : TStringList;
   req   : string;
   ErrMsg: string;
begin
  http:= THTTPSend.Create;
  DAnsw:= TStringList.Create;
  req:= 'https://lotw.arrl.org/lotwuser/lotwreport.adi?' +
        'login=xxxxx&password=yyyyyy&qso_query=1';//Requeststring User= xxxxx Passwd= yyyyy
  if not http.HTTPMethod('GET', req) then//War GET erfolgreich ? sonst Fehler
    begin
      ErrMsg:= '(' + IntToStr(http.ResultCode) + ')' + http.ResultString;
      Memo1.Append(ErrMsg);
    end
    else
    begin
      //DAnsw soll die Datei lotwreport.adi enthalten
      DAnsw.LoadFromStream(http.Document);
      Memo1.Append(DAnsw.Text);//Ausgabe im Memo
    end;
  http.Free;
  DAnsw.Free;
end;                 
 

Mit dem req-string direkt im Browser funktioniert es.

Was kann da faul sein ?

Gruß Frank
Zuletzt geändert von DL3AD am 19. Dez 2017, 17:40, insgesamt 1-mal geändert.
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon theo » 19. Dez 2017, 14:33 Re: HTTP Abfrage funktioniert nicht

"https" Hast du SSL eingebunden und ist die Lib vorhanden?
z.B. uses ssl_openssl;
http://synapse.ararat.cz/doku.php/publi ... :sslplugin
theo
 
Beiträge: 8046
Registriert: 11. Sep 2006, 18:01

Beitragvon DL3AD » 19. Dez 2017, 16:10 Re: HTTP Abfrage funktioniert nicht

... nein hatte ich nicht - habe nun ssl_openssl unter uses angegeben und die entsprechenden Dateien dem Projektordner hinzugefügt.
Da muss noch was fehlen - geht immer noch nicht - muss ich noch was mit ssl machen ?
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon DL3AD » 19. Dez 2017, 17:43 Re: HTTPS Abfrage funktioniert nicht

Hallo,

ich habe nun weiter herumprobiert - komme nicht weiter :(

Fehlt da noch was in meinem Code ?
Gibt es irgendwo ein Beispiel ?
Brauch ich noch irgenwelche Zertifikate oder sonstige Dateien ?

Gruß Frank
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon theo » 20. Dez 2017, 13:52 Re: HTTPS Abfrage funktioniert nicht

Bei mir funktioniert dein Code. Bin auf Linux.
Wenn du auf Windows bist, musst du noch so eine OpenSSL DLL im Pfad haben.
http://synapse.ararat.cz/files/crypt/
theo
 
Beiträge: 8046
Registriert: 11. Sep 2006, 18:01

Beitragvon sstvmaster » 20. Dez 2017, 14:08 Re: HTTPS Abfrage funktioniert nicht

oder besser noch die neusten dll's von hier:

aktuell 1.0.2n

https://indy.fulgan.com/SSL/

In meinem Fall musste ich folgendes machen:

- Win32 zip entpacken und libeay32.dll + ssleay.32.dll ins Programmverzeichnis meines Projektes kopieren.
- ssl_openssl in uses aufnehmen

Jetzt musste ich noch:
- In Lazarus -> Projekt -> Projektinspektor
- doppelklick auf laz_synapse
- Hinzufügen -> Dateien aus dem Dateisystem hinzufügen
- mit "STRG/CTRL" ssl_openssl.pas + ssl_openssl_lib.pas auswählen -> Öffnen
- Kompilieren

Fertig


73 Maik, DM4YWL
OS: Windows 7 32/64bit
Lazarus 1.8.2, 32bit
Lazarus 1.9.0 Trunk, 32bit
sstvmaster
 
Beiträge: 38
Registriert: 22. Okt 2016, 22:12
OS, Lazarus, FPC: Lazarus 1.8.2 + 1.9.0 Trunk / Win32, Windows 7 32+64bit | 
CPU-Target: 32Bit
Nach oben

Beitragvon DL3AD » 20. Dez 2017, 15:15 Re: HTTPS Abfrage funktioniert nicht

Hallo theo, sstvmaster,

vielen Dank für den Tipp - nun funktioniert es - es lag an den dll's 8)

Gruß Frank
(73 Frank, DL3AD)
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon DL3AD » 24. Dez 2017, 13:25 Re: HTTPS Abfrage funktioniert nicht

... soweit funktioniert ja nun alles - aber ein kleines Problem habe ich noch.
Mit
Code: Alles auswählen
 
DAnsw.LoadFromStream(http.Document);
 

lade ich die gelieferte Datei in eine Stringlist DAnsw.
Die gelieferte Datei ist lotwreport.adi wenn alles richtig läuft.
Im Fehlerfall kommt aber nicht die Datei sondern eine Webseite welche dann in der Stringlist landet.

Wie kann ich feststellen was mit http.Document geliefert wird - d.h. den Dateinamen feststellen ?

Gruß Frank
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon m.fuchs » 24. Dez 2017, 15:02 Re: HTTPS Abfrage funktioniert nicht

Hm, es gibt keine Dateinamen bei HTTP. Du wirst also das zurückgegebene Dokument auslesen müssen.
Oder vielleicht den Content-Type-Header der Antwort. Sofern der für ein korrektes Dokument etwas anderes als "text/html" ist.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1949
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon DL3AD » 24. Dez 2017, 16:30 Re: HTTPS Abfrage funktioniert nicht

Hallo m.fuchs,

Danke für die Antwort - ja ich habe auf einen spezifischen Inhalt geprüft - dann lasse ich das so.

Frohes Fest euch allen.

Gruß Frank
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

• Themenende •

Zurück zu Netzwerk



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried