Mehrteilige Anfragen in Go
Das Erstellen mehrteiliger Anfragen in Go kann eine Herausforderung sein, insbesondere wenn bestimmte Anfrageformate eingehalten werden. Um zu verstehen, wie man Multipart-Anfragen effektiv nutzt, betrachten wir ein Beispiel, bei dem die Zielanforderung die Form annimmt:
POST /blabla HTTP/1.1 Host: 2.2.2.2 Authorization: moreblabla Content-Type: multipart/mixed; boundary=--rs0q5Jq0M2Yt08jU534d1q Content-Length: 347 Node: 1.1.1.1.1 --rs0q5Jq0M2Yt08jU534d1q Content-Type: application/json {"hello" : "world"} --rs0q5Jq0M2Yt08jU534d1q
Zuvor wurde versucht, eine solche Anfrage mithilfe von multipart.NewWriter und einer Standardteilerstellung zu generieren , was zu Problemen bei der Inhaltserkennung führte. Um dieses Problem zu lösen, kann der folgende Ansatz verwendet werden:
body := &bytes.Buffer{} writer := multipart.NewWriter(body) // Create the part with the appropriate mime type part, _ := writer.CreatePart(textproto.MIMEHeader{"Content-Type": {"application/json"}}) part.Write(jsonStr) writer.Close() req, _ := http.NewRequest("POST", "blabla", body) req.Header.Set("Content-Type", "multipart/mixed; boundary="+writer.Boundary())
Durch die Angabe des Inhaltstyps beim Erstellen des Teils kann die Anfrage dem erwarteten Format entsprechen und die erforderlichen Daten erfolgreich übertragen.
Das obige ist der detaillierte Inhalt vonSo erstellen Sie mehrteilige Anfragen mit Mime-Typen in Go. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!