Heim >Backend-Entwicklung >Golang >Wie erstelle ich mehrteilige HTTP-Anfragen mit Gomultipart in Golang?

Wie erstelle ich mehrteilige HTTP-Anfragen mit Gomultipart in Golang?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-24 00:28:30259Durchsuche

How to Create Multipart HTTP Requests with Gomultipart in Golang?

So verwenden Sie Multipart in Go

Multipart in Golang ist ein leistungsstarkes Tool zum Erstellen mehrteiliger HTTP-Anfragen. Dies kann besonders nützlich sein, wenn Sie Daten senden, die sowohl Text- als auch Dateiinhalte enthalten.

Lösung

Um eine mehrteilige Formularanforderung zu erstellen, befolgen Sie diese Schritte:

  1. Instanziieren ein bytes.Buffer und ein multipart.Writer-Objekt.
  2. Verwenden Sie den multipart.Writer, um multipart.Part-Objekte zu erstellen, eines für jeden Teil der Anfrage.
  3. Legen Sie den Content-Type-Header von fest die Anfrage auf den von write.FormDataContentType() zurückgegebenen Wert.
  4. Schreiben Sie den Inhalt der Anfrageteile in den multipart.Writer.
  5. Rufen Sie write.Close() auf, um die Anfrage abzuschließen.

Beispiel

In Ihrem Beispiel würden Sie eine mehrteilige gemischte Anfrage wie folgt erstellen:

<code class="go">body := &bytes.Buffer{}
writer := multipart.NewWriter(body)

part, err := writer.CreatePart(textproto.MIMEHeader{"Content-Type": {"application/json"}})
if err != nil {
    // handle error
}

part.Write(jsonStr)

writer.Close()

req, err := http.NewRequest("POST", "blabla", body)
if err != nil {
    // handle error
}

req.Header.Set("Content-Type", "multipart/mixed; boundary="+writer.Boundary())</code>

Bonus-Tipp: Verwenden von cURL

Sie Sie können mit cURL auch mit dem folgenden Befehl eine mehrteilige Anfrage generieren:

curl -F "field=value" -H "Content-Type: multipart/mixed; boundary=boundary" http://1.1.1.1/blabla

Das obige ist der detaillierte Inhalt vonWie erstelle ich mehrteilige HTTP-Anfragen mit Gomultipart in Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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