Maison  >  Article  >  développement back-end  >  Comment construire des requêtes multiparts avec des types MIME dans Go

Comment construire des requêtes multiparts avec des types MIME dans Go

Barbara Streisand
Barbara Streisandoriginal
2024-10-24 03:21:02140parcourir

How to Construct Multipart Requests with Mime Types in Go

Requêtes multiparts dans Go

La création de requêtes multiparts dans Go peut être difficile, en particulier lorsque vous respectez des formats de requête spécifiques. Pour comprendre comment utiliser efficacement les requêtes multipart, considérons un exemple où la requête cible prend la forme :

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

Auparavant, une tentative a été faite pour générer une telle requête en utilisant multipart.NewWriter et une création de pièce par défaut , ce qui a entraîné des problèmes de reconnaissance du contenu. Pour résoudre ce problème, l'approche suivante peut être utilisée :

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

En spécifiant le type de contenu lors de la création de la pièce, la requête peut adhérer au format attendu et transmettre avec succès les données requises.

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