Einzelnen Beitrag anzeigen

Scurra

Registriert seit: 19. Jan 2015
81 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: ContentType in TRESTClient

  Alt 6. Mär 2019, 09:41
Wäre es für euch eine Möglichkeit, die Unit REST.Types zu kopieren, mit in euer Projekt aufzunehmen und zu patchen?
So dass ihr euren Typ in TRESTContentType und entsprechend function ContentTypeToString(AContentType: TRESTContentType): string; anpasst?
Man müsste aber prüfen, in wie weit das mit den anderen REST-Units dann noch kompatibel ist. Ggf. muss man sich mehrere davon ins Projekt nehmen.
Dann kann man aber auch gleich die Execute-Methode anpassen.
Das war auch unsere Idee.
Ich bin mir nur nicht sicher, ob das mit dem content-type ein Bug ist oder ein Feature Letzteres würde bedeuten, dass man beim zukünftigen Wechsel auf neuere Delphi-Versionen immer wieder die Implementierung anpassen muss.


Zitat:
Weitere Möglichkeit:
Unter Windows würde die Möglichkeit bestehen, sich in die Winapi-Funktion WinHttpAddRequestHeaders reinzuhängen (intercept) und den Wert beim Aufruf dort auszutauschen.
Diese wird in procedure TWinHTTPRequest.AddHeader(const AName, AValue: string); aus System.Net.HttpClient.Win aufgerufen.
Natürlich insofern, dass dies in Rio verwendet wird. Ich kann im Moment nur in Tokyo nachschauen.
Dieses Intercepten würde aber auf Anwendungsebene ablaufen, oder? Also wenn ich den REST-Client an zwei verschiedenen Stellen verwende, weiß ich beim Intercepten nicht, von welcher Stelle aus die Funktion aufgerufen wurde. In diesem Fall wäre es nämlich schwer bis unmöglich, herauszufinden, auf welchen content-type man den Header setzen muss.

Aber danke jedenfalls schon mal für die Idee und den Link!
  Mit Zitat antworten Zitat