Senden einer POST-Anfrage mit Go
Das Stellen von POST-Anfragen in Go kann eine häufige Aufgabe sein. Dieser Artikel bietet eine Lösung für ein häufiges Problem, das beim Versuch auftritt, eine POST-Anfrage in Go zu senden.
Problem:
„Ich versuche, einen POST zu erstellen.“ Anfrage, aber ich kann es anscheinend nicht zum Laufen bringen. Mir ist die PostForm-Funktion bekannt, aber ich glaube, sie kann nicht mit httputil getestet werden. richtig?"
Lösung:
Der in der Problemstellung angegebene Code ist größtenteils korrekt. Die fehlende Komponente ist die Zuordnung der Formulardaten zum Anfragetext. Hier ist der korrigierte Code:
req, err := http.NewRequest("POST", url, strings.NewReader(form.Encode()))
Im ursprünglichen Code wurden die Formulardaten req.PostForm zugewiesen, das zum Senden von Formulardaten als Teil der Header verwendet wird. Bei einer POST-Anfrage sollten die Formulardaten im Hauptteil der Anfrage gesendet werden. Durch die Verwendung von strings.NewReader(form.Encode()) wird ein io.Reader erstellt, der die Formulardaten codiert als URL-codierte Zeichenfolge enthält. Dies ist das erwartete Format für POST-Anfragen unter Verwendung des Inhaltstyps application/x-www-form-urlencoded .
Das obige ist der detaillierte Inhalt vonWarum sendet meine Go POST-Anfrage keine Daten an den Empfänger?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!