使用Golang 的Multipart 套件產生多部分POST 請求
多部分請求在傳輸複雜格式的資料中發揮著至關重要的作用,例如那些包括文字、二進位資料或JSON。要在 Golang 中產生多部分/混合請求,我們利用優雅的多部分套件。
在您的特定情況下,要建立類似於給定表單的多部分POST 請求,請按照以下步驟操作:
<code class="go">import ( "bytes" "mime/multipart" "net/http" "text/template" ) // Declare a variable to represent the JSON string. var jsonStr = []byte(`{"hello": "world"}`) func generateMultipartRequest() (*http.Request, error) { // Create a buffer to store the request body. body := &bytes.Buffer{} // Create a multipart writer using the buffer. writer := multipart.NewWriter(body) // Create a part for the JSON data and specify its content type. part, err := writer.CreatePart(http.Header{ "Content-Type": []string{"application/json"}, }) if err != nil { return nil, err } // Write the JSON data into the part. if _, err := part.Write(jsonStr); err != nil { return nil, err } // Close the writer to finalize the request body. if err := writer.Close(); err != nil { return nil, err } // Create a new HTTP request. req, err := http.NewRequest(http.MethodPost, "/blabla", body) if err != nil { return nil, err } // Set the Content-Type header with the specified boundary. req.Header.Set("Content-Type", writer.FormDataContentType()) // Return the request. return req, nil }</code>
此更新的程式碼透過提供用於創建多部分/混合請求的客製化解決方案來解決您先前嘗試中面臨的挑戰。它正確指定 Content-Type 標頭並使用 CreatePart 函數來啟用 JSON 資料內容類型的自訂。
以上是如何使用 Golang 的 Multipart 套件產生 Multipart POST 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!