コンテンツへスキップ

GoのWebAssemblyでネットワークを利用する

by : 2019/04/12

Go1.11からサポートされたWebAssemblyにおいて、ネットワークを利用する方法を紹介します。今回はJSONファイルの取得方法です。

注意点

実際のネットワークアクセスはWebブラウザの開発者ツール、ネットワークタブ内で確認できます。ネットワークアクセスを匿名化したり、CORS制限も適用されますので注意してください。

利用法

今回はCORS制限がなく、APIキーも不要なMicrolinkのコンテンツを取得します。 "net/http" パッケージを使ってネットワークアクセスをします。そして ioutil.ReadAll を使ってコンテンツを取得します。これはバイト文字列になっていますので、 string 関数を使って文字列化します。


package main
import (
"fmt"
"syscall/js"
"net/http"
"strconv"
"io/ioutil"
)
func main() {
resp, err := http.Get("https://api.microlink.io/?url=https://twitter.com/futurism/status/882987478541533189&video&palette")
if err != nil {
fmt.Println(err)
}
defer resp.Body.Close()
b, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
}
js.Global().Get("document").
Call("querySelector", "#html").
Set("value", string(b))
}

view raw

index.go

hosted with ❤ by GitHub


これまでのWebAssemblyはDOMやFetch APIなどが使えないのが難点でした。しかしGo版のWebAssemblyによって、その問題はなくなっています。 WebAssemblyの可能性を飛躍的に高めてくれるのではないでしょうか。

From → HTML5

コメントは受け付けていません。

%d人のブロガーが「いいね」をつけました。