AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Nach einem redirect 301 wird POST wird durch GET überschrieben
Thema durchsuchen
Ansicht
Themen-Optionen

Nach einem redirect 301 wird POST wird durch GET überschrieben

Ein Thema von alex517 · begonnen am 16. Feb 2022 · letzter Beitrag vom 13. Dez 2024
 
alex517
Online

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#1

Nach einem redirect 301 wird POST wird durch GET überschrieben

  Alt 16. Feb 2022, 15:26
Hallo alle zusammen!

Ich habe einen REST-Server und einen REST-Client mit dem DMVC von Daniele Teti geschrieben.

Die Filter-Parameter für die Abfrage GetHistorie() werden als JSON im Body übergeben.
Mit POST wird die Abfrage ausgeführt.

Delphi-Quellcode:
    [MVCPath('/historie')]
    [MVCConsumes(TMVCMediaType.APPLICATION_JSON)]
    [MVCProduces(TMVCMediaType.APPLICATION_JSON)]
    [MVCHTTPMethod([httpPOST])]
    procedure GetHistorie([MVCFromBody] Filter: TFltHistorie);
Die Produktiv-Umgebung läuft über einen Reverse-Proxy mit NGINX und Let's encrypt.

Wenn die Abfrage über HTTPS geht ist alles ok, die POST-Methode wird ausgeführt.

Wenn die Abfrage über HTTP gestartet wird,
erfolgt durch NGINX eine Umleitung auf HTTPS.
Code:
  ...
  return 301 https://$server_name$request_uri;
  ...
Diese Umleitung mit dem Code 301 bewirkt im REST-Server in der Funktion
System.Net.HttpClient.IsAutoRedirectWithGET(..)
ein Überschreiben der POST-Methode durch eine GET-Methode.

Das hat zur Folge, dass der Client als Antwort ein 404 erhält,
da Funktion GetHistorie() als HTTP-POST und nicht als HTTP-GET definiert ist.

Ok, Lösung:
gleich das HTTPS Protkoll verwenden.

Jetzt die Fragen:

Warum wird, wie es aussieht standardmäßig, nach einem redirect 301 ein POST durch ein GET ersetzt?

Kann man dieses Verhalten abstellen?

Alex
Alexander

Geändert von alex517 (16. Feb 2022 um 15:30 Uhr)
  Mit Zitat antworten Zitat
 


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 16:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz