Skip to content

Commit 31f6151

Browse files
committed
Add cmd/httpget/main.go
1 parent c9b2a3a commit 31f6151

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

cmd/httpget/main.go

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
//
2+
// http.Get() を使って HTTP GET リクエストを試してみるサンプルです。
3+
//
4+
// リクエストの発行先は JSONPlaceholder (https://jsonplaceholder.typicode.com/) を
5+
// 使わせてもらっています。
6+
//
7+
// REFERENCES:
8+
// - https://dev.to/devkiran/make-an-http-get-request-in-go-58gf
9+
//
10+
package main
11+
12+
import (
13+
"encoding/json"
14+
"fmt"
15+
"log"
16+
"net/http"
17+
"os"
18+
)
19+
20+
type Post struct {
21+
UserId int `json:"userId"`
22+
Id int `json:"id"`
23+
Title string `json:"title"`
24+
Body string `json:"body"`
25+
}
26+
27+
func (me *Post) String() string {
28+
return fmt.Sprintf("Uid: %d, Id: %d, Title: %s..., Body: %s...", me.UserId, me.Id, me.Title[:5], me.Body[:5])
29+
}
30+
31+
const (
32+
url = "https://jsonplaceholder.typicode.com/posts/1"
33+
)
34+
35+
var (
36+
appLog = log.New(os.Stderr, "", 0)
37+
errLog = log.New(os.Stderr, "[Error] ", 0)
38+
)
39+
40+
func main() {
41+
resp, err := http.Get(url)
42+
if err != nil {
43+
errLog.Println(err)
44+
return
45+
}
46+
defer resp.Body.Close()
47+
48+
var (
49+
post = &Post{}
50+
decoder = json.NewDecoder(resp.Body)
51+
)
52+
53+
err = decoder.Decode(post)
54+
if err != nil {
55+
errLog.Println(err)
56+
return
57+
}
58+
59+
appLog.Println(post)
60+
}

0 commit comments

Comments
 (0)