AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Basiert TRESTClient WIRKLICH auf Indy?
Thema durchsuchen
Ansicht
Themen-Optionen

Basiert TRESTClient WIRKLICH auf Indy?

Ein Thema von Codehunter · begonnen am 29. Okt 2018 · letzter Beitrag vom 29. Okt 2018
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 13:03
Hallo!

Ich bin seit einiger Zeit über eine Aussage in der Emba-Doku zu den REST-Komponenten verwirrt:
Zitat:
TRESTClient ist so konzipiert, dass alle HTTP-bezogenen Exceptions so lange verborgen werden, wie die Exception durch HTTP-Standardcode dargestellt werden kann. Der Client löst nur "harte" Exceptions aus, wie z. B. fehlende Clientbibliotheken bei einer TLS/SSL-Verbindung, Verbindungsfehler usw. Das Framework arbeitet mit den bekannten Komponenten von Indy (Internet Direct). Unter Sichern von Indy-Netzwerkverbindungen, Voraussetzungen finden Sie Anweisungen zur Installation der Clientbibliotheken für TLS/SSL-Verbindungen.
Wenn ich aber in die entsprechenden Units schaue (REST.Client, REST.HTTPClient) so sehe ich dort nichts von Indy. Irritierend auch, dass man zur Konfiguration bestimmter SSL/TLS-Parameter sich der Winapi direkt bedienen muss(te, vor Tokyo) und eben nicht über Properties wie bei TIdSSLIOHandlerSocketOpenSSL . Das wäre dann ja nicht plattformunabhängig, doch compilerabhängige Uses sehe ich auch nirgends. Vielleicht könnte mich ja mal jemand erleuchten.

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (29. Okt 2018 um 13:05 Uhr)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 13:13
Nicht mehr.
Die REST-Komponenten in XE5 bis XE7 basierten auf den INDY-Komponenten, beinhalteten damals aber schon eine Abstraktionsschicht dazwischen, um die Komponenten tauschen zu können. Mittlerweile hängen die Net-Komponenten dazwischen, die dann auf den jeweiligen Plattformen nativ arbeiten.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 13:16
Emba überlässt es Dir wie Du eine verschlüßelte Verbindung aufbaust.
Da Indy integeriert ist, bietet es sich dafür an.

Hier ein mini Beispiel (ohne Indy & ohne SSL) *klick mich*
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 13:20
Nein, deine Antwort ist inhaltlich falsch.
Die REST-Komponenten basierten entweder auf den INDY-Komponenten (früher) oder auf den nativen Komponenten (jetzt). Entweder - oder. Eine Wahl hatte der Entwickler im Zusammenhang mit diesen Komponenten nie.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 13:34
Also ist die Erklärung, dass das schlicht eine noch nicht korrigierte Altlast in der Emba-Doku in der deutschsprachigen Version ist. Jetzt wo ich drauf gestoßen wurde habe ich im englischen Bereich geschaut und siehe da, dort steht was anderes:
Zitat:
TRESTClient is built to hide any HTTP-related exceptions as long as the exception can be represented by a standard HTTP code. The client only throws 'hard' exceptions, connection failures, and so on. The framework operates on the newer TNetHTTPClient, which is based on system HTTP client sockets. This allows it to leverage the OS's ability to automatically resolve and deal with SSL/TLS/HTTPS.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 13:44
Eine weitere Frage in dem Zusammenhang: Ich bin eigentlich ein Freund von den Indy-Komponenten, vor allem auch wegen der Flexibilität. Ist es zum jetzigen Zeitpunkt noch eine gute Idee, anstelle von TRestClient/TRESTRequest auf Indy und TJSONObject zu setzen?
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 13:56
Ehrlich gesagt sind wir bei uns von Indy jetzt komplett auf die nativen Komponenten umgestiegen.
Weniger Abhängigkeiten und ich persönlich finde sie besser und um einiges einfacher als die Indies.
Und für SSL braucht man dann auch nicht mehr die SSL-DLLs. Man übergibt eine url mit https statt http und es klappt.
Kein IOHandler, keine SSL-DLLs, etc.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 14:15
Und für SSL braucht man dann auch nicht mehr die SSL-DLLs. Man übergibt eine url mit https statt http und es klappt.
Kein IOHandler, keine SSL-DLLs, etc.
Ja denkste, das war genau der Grund warum ich so viel suchen musste. Auf Windows 10 liefs wunderbar mit TRESTClient, auf Windows 7 nicht und keiner wusste warum. Bis ich dann mit dem Wireshark aufdröseln musste was eigentlich schief geht. Unter Win 7 sind per Default weder TLS 1.1 noch TLS 1.2 verfügbar und auch das Aushandeln der Stromchiffren ging vor den Baum. Und das rauszufinden ist bei verschlüsselten Verbindungen mit Wireshark ein einziger Krampf Ursache war zwar serverseitig, aber man hat ja trotzdem die Arbeit. Und das nur, weil mit der OS-nativen Inet-Kommunikation auch mehr Unwägbarkeiten ins Spiel kommen. Und, was man ja bedenken sollte: Sobald ein Windows aus dem Support fällt, werden dort auch keine neuen Stromchiffren oder TLS-Versionen mehr kommen. Bei den OpenSSL-DLLs dagegen schon (zumindest länger)

Vielleicht ist Indy mit mehr Einarbeitung verbunden, aber Debuggen geht IMHO einfacher. Wobei ich ergänzend sagen muss, dass ich schon ein funktionierendes REST-Framework mit Indy habe. Es ist also keine Frage des Implementierungsaufwandes sondern mehr eine Grundsatzfrage.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter (29. Okt 2018 um 14:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.798 Beiträge
 
Delphi 12 Athens
 
#9

AW: Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 14:21
Ein aus dem Support gefallenes Windows sollte man aus reinem Selbsterhaltungstrieb nicht supporten.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 14:29
Ein aus dem Support gefallenes Windows sollte man aus reinem Selbsterhaltungstrieb nicht supporten.
Das kann man nicht pauschalisieren. Jede Branche hat eine ganz eigene Clientel und manchmal sagt der Selbsterhaltungstrieb, auch ältere Windows noch zu unterstützen (supporten tun wir die nicht)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  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 00:48 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