diff --git a/ch1/dmfetch/1_7.go b/ch1/dmfetch/1_7.go new file mode 100644 index 0000000..1f0c0c8 --- /dev/null +++ b/ch1/dmfetch/1_7.go @@ -0,0 +1,26 @@ +package main + +import ( + "io" + "log" + "net/http" + "os" +) + +func main() { + if len(os.Args[1:]) < 1 { + log.Fatal("requires args") + } + for _, i := range os.Args[1:] { + resp, err := http.Get(i) + if err != nil { + log.Print(err) + continue + } + defer resp.Body.Close() + _, err = io.Copy(os.Stdout, resp.Body) + if err != nil { + log.Print(err) + } + } +} diff --git a/ch1/dmfetch/1_8.go b/ch1/dmfetch/1_8.go new file mode 100644 index 0000000..d88937d --- /dev/null +++ b/ch1/dmfetch/1_8.go @@ -0,0 +1,32 @@ +package main + +import ( + "fmt" + "io/ioutil" + "log" + "net/http" + "os" + "strings" +) + +func main() { + if len(os.Args[1:]) < 1 { + log.Fatal("requires args") + } + for _, i := range os.Args[1:] { + if !strings.HasPrefix(i, "http://") { + i = "http://" + i + } + resp, err := http.Get(i) + if err != nil { + log.Print(err) + continue + } + defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Print(err) + } + fmt.Printf("%s", body) + } +} diff --git a/ch1/dmfetch/1_9.go b/ch1/dmfetch/1_9.go new file mode 100644 index 0000000..24157f9 --- /dev/null +++ b/ch1/dmfetch/1_9.go @@ -0,0 +1,33 @@ +package main + +import ( + "fmt" + "io/ioutil" + "log" + "net/http" + "os" + "strings" +) + +func main() { + if len(os.Args[1:]) < 1 { + log.Fatal("requires args") + } + for _, i := range os.Args[1:] { + if !strings.HasPrefix(i, "http://") { + i = "http://" + i + } + resp, err := http.Get(i) + if err != nil { + log.Print(err) + continue + } + defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Print(err) + } + fmt.Printf("%s", body) + fmt.Printf("HTTP status code: %s\n", resp.Status) + } +} diff --git a/ch1/dmfetch/main.go b/ch1/dmfetch/main.go new file mode 100644 index 0000000..ef8b5c1 --- /dev/null +++ b/ch1/dmfetch/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "fmt" + "io/ioutil" + "log" + "net/http" + "os" +) + +func main() { + if len(os.Args[1:]) < 1 { + log.Fatal("requires args") + } + for _, i := range os.Args[1:] { + resp, err := http.Get(i) + if err != nil { + log.Print(err) + continue + } + defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + log.Print(err) + } + fmt.Printf("%s", body) + } +}