Go 中的多部分請求
在Go 中建立多部分請求可能具有挑戰性,尤其是在遵循特定請求格式時。為了了解如何有效地使用多部分請求,讓我們考慮一個目標請求採用以下形式的範例:
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
之前,曾嘗試使用multipart.NewWriter 和預設部分建立來產生此類請求,這導致了內容識別的問題。為了解決這個問題,可以使用以下方法:
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())
透過在建立零件時指定內容類型,請求可以遵循預期的格式並成功傳輸所需的資料。
以上是如何在 Go 中使用 Mime 類型建構多部分請求的詳細內容。更多資訊請關注PHP中文網其他相關文章!