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