Heim > Artikel > Backend-Entwicklung > Wie kann ich JSON aus dem Anforderungstext in Go lesen, ohne dessen Inhalt zu verlieren?
Bei der Verarbeitung von HTTP-Anfragen in einer Webanwendung ist die Erfassung des Anfragetextes für viele Vorgänge unerlässlich. Mit Go gibt es mehrere Ansätze, um diese Aufgabe zu erfüllen.
Stellen Sie sich das folgende Szenario vor: Sie müssen den rohen JSON-Text einer POST-Anfrage abrufen und in einer Datenbank speichern. Dazu muss der ursprüngliche Zustand des Körpers erhalten bleiben.
Das Problem:
Versuch, den Körper direkt mit json.NewDecoder zu dekodieren oder an eine Strukturdose zu binden zu leeren Ergebnissen oder Fehlern führen, da der http.Request.Body ein Puffer ist, der nicht mehrfach gelesen werden kann.
Die Lösung:
Zu erfassen Hier finden Sie eine Schritt-für-Schritt-Lösung:
Beispielcode:
<code class="go">// Read the Body content var bodyBytes []byte if context.Request().Body != nil { bodyBytes, _ = ioutil.ReadAll(context.Request().Body) } // Restore the io.ReadCloser to its original state context.Request().Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes)) // Continue to use the Body, like Binding it to a struct: order := new(models.GeaOrder) error := context.Bind(order)</code>
Quellen:
Das obige ist der detaillierte Inhalt vonWie kann ich JSON aus dem Anforderungstext in Go lesen, ohne dessen Inhalt zu verlieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!