HTTP-Multipart-Anfragen in Go
Das Erstellen von Multipart-Anfragen, die häufig zum Senden von Daten in bestimmten Formaten verwendet werden, kann mithilfe des Multipart-Pakets in erreicht werden Gehen. Sehen wir uns an, wie wir dieses Problem angehen können.
Stellen Sie sich das folgende Szenario vor: Senden einer mehrteiligen POST-Anfrage, die sowohl aus JSON-Daten als auch einer Grenze besteht. Diese Grenze trennt verschiedene Teile der Anfrage.
Es wurden zahlreiche Versuche unternommen, wie im angegebenen Codeausschnitt dargestellt. Der Server gibt jedoch regelmäßig einen HTTP-Fehler 200 zurück, was darauf hinweist, dass der Nachrichtentyp nicht unterstützt wird.
Um dieses Problem zu beheben, müssen wir den Inhaltstyp jedes Teils korrekt festlegen. Hier ist der geänderte Code:
<code class="go">body := &bytes.Buffer{} writer := multipart.NewWriter(body) part, _ := writer.CreatePart(textproto.MIMEHeader{ "Content-Type": {"application/json"}, }) part.Write(jsonStr) writer.Close() req, _ := http.NewRequest("POST", "http://1.1.1.1/blabla", body) req.Header.Set( "Content-Type", "multipart/mixed; boundary="+writer.Boundary(), )</code>
Durch die Festlegung des Content-Type: application/json für den Teil, der die JSON-Daten enthält, stellen wir sicher, dass der Server die Anfrage korrekt interpretieren kann. Der Grenzparameter wird ebenfalls entsprechend eingestellt, um dem erwarteten Format zu entsprechen.
Das obige ist der detaillierte Inhalt vonWie lege ich den richtigen Inhaltstyp für mehrteilige POST-Anfragen in Go fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!