1
3

More than 3 years have passed since last update.

Golangでhttp通信をやってみる

Posted at

はじめに

GolangにはまったときにCodewarsで遊んでました。
楽しかったのですが、そのあとSwiftC#http通信やったのでせっかくなのでGolangでもやってみようかと思います。

開発環境

  • Windows 10 Home 64bit
  • Visual Studio code 1.41.1
  • go version go1.13.6 windows/amd64

開発環境構築

開発環境の構築は以下の記事を参考にさせていただきました。
本当につまるところなく動いたのですごいなぁと思います。

VSCodeでGo言語の開発環境を構築する

Http通信してみよう

前回の記事Swiftでやってみたサイトにアクセスしてみます。

Packegeを調べる

公式のドキュメントが優秀ですね。
ちゃんと英語版で読みましょう(助けてGoogle翻訳先生!)

Package http

httpsを使い場合は、Transportを設定する必要あるようです。
また、Go 1.6以降はHTTP/2に対応しているようですね。

やってみよう

試したコードはこちらになります。

main.go

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
)

func main() {
    url := "http://md5.jsontest.com/?text="
    url += "examble"
    resp, err := http.Get(url)
    if err != nil {
        fmt.Println("handle error")
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    fmt.Println(string(body))
}

このサイトwebAPIなのかな?にアクセスしてテキストのMD5を出してくれるそうです。
結果はPrintlnで出力しています。stringに変換してあげないとRuneのリストが出力されるので全くわかりません。

最後に

久しぶりにGolang使いましたがやはり楽しいですね。
本当はM5stackwebAPI使ってTwitterにアクセスしたりしてみたかったのですが、どうやらHTTPSのライブラリで証明書を更新しないで読み込むので中間サーバー傍受ができるとかなんとか書いてたので今停滞中です・・・
とりあえずマイコンだろうがGolangだろうがライブラリの使い方次第なのでまずはGolangで使えるようにしようかなと思います。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3