Maison >développement back-end >Golang >Comment générer une requête POST multipart avec le package multipart de Golang ?
Génération de requêtes POST multiparts à l'aide du package multipart de Golang
Les requêtes multipart jouent un rôle essentiel dans la transmission de données dans des formats complexes, tels que ceux qui incluent texte, données binaires ou JSON. Pour générer une requête multipart/mixte dans Golang, nous exploitons l'élégant package multipart.
Dans votre cas spécifique, pour créer une requête POST en plusieurs parties ressemblant au formulaire donné, suivez ces étapes :
<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>
Ce code mis à jour répond aux défis rencontrés lors de votre tentative précédente en fournissant une solution sur mesure pour créer une demande multipart/mixte. Il spécifie correctement l'en-tête Content-Type et utilise la fonction CreatePart pour permettre la personnalisation du type de contenu pour les données JSON.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!