ホームページ  >  記事  >  バックエンド開発  >  Go で MIME タイプを使用してマルチパート リクエストを構築する方法

Go で MIME タイプを使用してマルチパート リクエストを構築する方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-24 03:21:02140ブラウズ

How to Construct Multipart Requests with Mime Types in Go

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。