Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Membina Permintaan Berbilang Bahagian dengan Jenis Mime dalam Go

Cara Membina Permintaan Berbilang Bahagian dengan Jenis Mime dalam Go

Barbara Streisand
Barbara Streisandasal
2024-10-24 03:21:02140semak imbas

How to Construct Multipart Requests with Mime Types in Go

Permintaan Berbilang Bahagian dalam Go

Membuat permintaan berbilang bahagian dalam Go boleh menjadi mencabar, terutamanya apabila mematuhi format permintaan tertentu. Untuk memahami cara menggunakan permintaan berbilang bahagian dengan berkesan, mari pertimbangkan contoh permintaan sasaran dalam bentuk:

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

Sebelum ini, percubaan telah dibuat untuk menjana permintaan sedemikian menggunakan multipart.NewWriter dan penciptaan bahagian lalai , yang membawa kepada isu dengan pengecaman kandungan. Untuk menangani perkara ini, pendekatan berikut boleh digunakan:

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())

Dengan menyatakan jenis kandungan semasa membuat bahagian, permintaan boleh mematuhi format yang diharapkan dan berjaya menghantar data yang diperlukan.

Atas ialah kandungan terperinci Cara Membina Permintaan Berbilang Bahagian dengan Jenis Mime dalam Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn