Heim > Backend-Entwicklung > Golang > Wie kann ich einen HTTP-Anfragetext überprüfen, ohne ihn zu ändern?

Wie kann ich einen HTTP-Anfragetext überprüfen, ohne ihn zu ändern?

DDD
Freigeben: 2024-12-21 16:34:10
Original
565 Leute haben es durchsucht

How Can I Inspect an HTTP Request Body Without Modifying It?

HTTP-Anfragetext überprüfen, ohne ihn zu ändern

In einem Szenario, in dem Sie den Text einer eingehenden POST-Anfrage analysieren müssen, ohne seinen Status zu ändern, wird die Es entsteht ein Problem mit der Erschöpfung des Anforderungsstroms, was zu Fehlern bei der Weiterleitung an einen Reverse-Proxy führt.

Um dieses Problem zu beheben, berücksichtigen Sie Folgendes Folgender Ansatz:

Erstellen Sie einen Puffer, indem Sie ihn aus dem ursprünglichen Anforderungstext (io.ReadAll(r.Body)) einlesen.

Verwenden Sie den Puffer, um zwei neue Reader zu erstellen:

  • rdr1 für Ihre Analyse mit integrierten Parsing-Funktionen wie req.ParseForm().
  • rdr2 für Nachfolgende Verbraucher stellen sicher, dass der ursprüngliche Anforderungsstatus intakt bleibt.

Weisen Sie rdr2 r.Body zu, damit nachfolgende Handler die unveränderte Anforderung bearbeiten können.

Mit dieser Technik können Sie die überprüfen Anfragetext ohne Auswirkungen auf das ursprüngliche Anfrageobjekt, wodurch dessen Integrität für die weitere Verarbeitung sichergestellt wird.

Das obige ist der detaillierte Inhalt vonWie kann ich einen HTTP-Anfragetext überprüfen, ohne ihn zu ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage