Maison >développement back-end >Golang >Comment définir le type de contenu approprié pour les requêtes POST en plusieurs parties dans Go ?

Comment définir le type de contenu approprié pour les requêtes POST en plusieurs parties dans Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-24 03:30:31353parcourir

How to Set Proper Content-Type for Multipart POST Requests in Go?

Requêtes HTTP multipart dans Go

La création de requêtes multipart, couramment utilisées pour envoyer des données dans des formats spécifiques, peut être réalisée à l'aide du package multipart dans Aller. Voyons comment résoudre ce problème.

Considérons le scénario suivant : envoyer une requête POST en plusieurs parties composée à la fois de données JSON et d'une limite. Cette limite sépare différentes parties de la requête.

De nombreuses tentatives ont été faites, comme illustré dans l'extrait de code donné. Cependant, le serveur renvoie systématiquement une erreur HTTP 200, indiquant que le type de message n'est pas pris en charge.

Pour résoudre ce problème, nous devons définir correctement le type de contenu de chaque partie. Voici le code modifié :

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

part, _ := writer.CreatePart(textproto.MIMEHeader{
    "Content-Type": {"application/json"},
})
part.Write(jsonStr)

writer.Close()

req, _ := http.NewRequest("POST", "http://1.1.1.1/blabla", body)
req.Header.Set(
    "Content-Type",
    "multipart/mixed; boundary="+writer.Boundary(),
)</code>

En définissant le Content-Type: application/json pour la partie contenant les données JSON, nous nous assurons que le serveur puisse interpréter correctement la requête. Le paramètre de limite est également défini de manière appropriée pour correspondre au format attendu.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn