GoでGETによるリクエスト [parameter][http.Get][http.Client]

2019年9月4日

Go

net/httpパッケージを利用してGETメソッドによるHTTPリクエストをおこないます。

 

まずはhttp.Getを利用した必要最低限の実装から。

18行目

リソースリークを防ぐためにレスポンスのボディを閉じる処理を、関数の終了時(上記ではmain)に呼ばれるdeferに設定しています。

 

20行目

ioutil.ReadAllでレスポンスのボディを読み込み、バイトスライス([]byte型)として取得します。25行目において文字列に変換し出力しています。

 

関連ページ

curlコマンドを利用する[POST][JSON][COOKIE]

 

 

次にhttp.Clientを利用して、リクエストにタイムアウトを5秒に設定してみます。

 

 

下記ではクエリパラメータを組み立ててリクエストしています。

15行目

http.NewRequestでリクエスト型のオブジェクト(構造体Request)を生成しています。

 

21〜23行目

構造体RequestにはURL・Header・Body・Form等のフィールドがあります。さらにURLフィールドとしての構造体にはRawQueryフィールドが存在し、最終的に作成したクエリパラメータをして設定しています(23行目)。21行目のQuery()でクエリパラメータとしての型、つまりキーと値を持つmapとしてのオブジェクトを生成しています。

 

上記コードでは実装していませんが、リクエストヘッダーを細かく指定し送信する場合は、HeaderフィールドのSet()もしくはAdd()を利用してリクエストに設定していきます。

 

 

 

参照ページ・文献


 

Package http

 

Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る (impress top gear)

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー