とりあえず http.Get を使ってみました。
package main
import (
"fmt";
"http";
)
func main() {
url := "http://twitter.com/statuses/public_timeline.json";
if res, _, err := http.Get(url); err == nil {
buff := make([]byte,512);
for {
if _, err := res.Body.Read(buff); err == nil {
fmt.Printf ("%s", buff);
} else {
break;
}
}
res.Body.Close();
}
}
jsonなレスがそのまま得られたのですが、ちゃんと処理したくなってきました。
jsonパッケージがあったのですが、使い方に自信がなくウェブ検索・・
すると IT戦記さんの「早速 Go 言語を試してみる!」 の記事を発見。
こちらの記事では http.Get がうまく行かなかったと書かれていたのですが、なんとなく上記のコードでいけそうなので json 処理部分だけコードを拝借して確認してみました。
package main
import (
"json";
"bufio";
"http";
)
func main() {
url := "http://twitter.com/statuses/public_timeline.json";
if res, _, err := http.Get(url); err == nil {
reader := bufio.NewReader(res.Body);
for {
line, err := reader.ReadString('\n');
if err != nil {
if err.String() == "EOF" {
j, _, _ := json.StringToJson(line);
for i := 0; i < j.Len(); i++ {
data := j.Elem(i);
print(data.Get("user").Get("screen_name").String() + ": " + data.Get("text").String() + "\n");
}
}
break;
}
}
res.Body.Close();
}
}
うまくいきました!
#golang
0 件のコメント:
コメントを投稿