前提・実現したいこと
ファイルアップロード時に下記ヘッダーを付与したい。
Authorization: Bearer XXX
発生している問題・エラーメッセージ
ヘッダーに Authorization: Bearer XXX がきちんと付与されておらず、サーバー側ではじかれてしまっている。
該当のソースコード
こちらのサイトを参考にしています。
go
1package main 2 3import ( 4 "bytes" 5 "io" 6 "log" 7 "mime/multipart" 8 "net/http" 9 "os" 10) 11 12func main() { 13 url := "http://localhost:3000/upload" 14 fieldname := "file" 15 filename := "hello.txt" 16 file, err := os.Open(filename) 17 handleError(err) 18 19 // リクエストボディのデータを受け取るio.Writerを生成する。 20 body := &bytes.Buffer{} 21 22 // データのmultipartエンコーディングを管理するmultipart.Writerを生成する。 23 // ランダムなbase-16バウンダリが生成される。 24 mw := multipart.NewWriter(body) 25 26 // ファイルに使うパートを生成する。 27 // ヘッダ以外はデータは書き込まれない。 28 // fieldnameとfilenameの値がヘッダに含められる。 29 // ファイルデータを書き込むio.Writerが返却される。 30 fw, err := mw.CreateFormFile(fieldname, filename) 31 32 // fwで作ったパートにファイルのデータを書き込む 33 _, err = io.Copy(fw, file) 34 handleError(err) 35 36 // リクエストのContent-Typeヘッダに使う値を取得する(バウンダリを含む) 37 contentType := mw.FormDataContentType() 38 39 // 書き込みが終わったので最終のバウンダリを入れる 40 err = mw.Close() 41 handleError(err) 42 43 // contentTypeとbodyを使ってリクエストを送信する 44 resp, err := http.Post(url, contentType, body) 45 handleError(err) 46 47 err = resp.Body.Close() 48 handleError(err) 49} 50 51func handleError(err error) { 52 if err != nil { 53 log.Fatal(err) 54 } 55}
試したこと
contentType += "; Authorization: Bearer XXX"
contentType部分に追記しました。が、サーバー側で確認したところきちんと付与されていませんでした。
補足情報(FW/ツールのバージョンなど)
Ubuntu18.04
go 1.13.5
質問
上記のコード内でどのようにすればヘッダー付与を実現できるかご存知の方いらっしゃいましたらご教示いただけませんでしょうか?
足りない情報等ありましたら追記致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/20 14:09
2020/10/20 14:10