summaryrefslogtreecommitdiffhomepage
path: root/go.html.markdown
diff options
context:
space:
mode:
authorVincent Voyer <vincent.voyer@gmail.com>2014-07-02 14:55:33 +0200
committerVincent Voyer <vincent.voyer@gmail.com>2014-07-02 14:55:33 +0200
commitf2e3d99476c0b549e468e3090d0938322e8142d4 (patch)
treec3c38d3b4cc2e250b71b9034ad84ac434330c9b9 /go.html.markdown
parentf90cdc44bb98ec4d275dd21c321adfb411d3e9c1 (diff)
feat(webserver request): add a http.Get example
1. script now exits 2. we initiate a request to the started server to prove the serverHTTP works what do you think?
Diffstat (limited to 'go.html.markdown')
-rw-r--r--go.html.markdown18
1 files changed, 16 insertions, 2 deletions
diff --git a/go.html.markdown b/go.html.markdown
index a9a7de72..61d7db84 100644
--- a/go.html.markdown
+++ b/go.html.markdown
@@ -329,17 +329,31 @@ func learnConcurrency() {
// A single function from package http starts a web server.
func learnWebProgramming() {
+
// First parameter of ListenAndServe is TCP address to listen to.
// Second parameter is an interface, specifically http.Handler.
- err := http.ListenAndServe(":8080", pair{})
- fmt.Println(err) // don't ignore errors
+ go func() {
+ err := http.ListenAndServe(":8080", pair{})
+ fmt.Println(err) // don't ignore errors
+ }()
+
+ requestServer();
}
+
// Make pair an http.Handler by implementing its only method, ServeHTTP.
func (p pair) ServeHTTP(w http.ResponseWriter, r *http.Request) {
// Serve data with a method of http.ResponseWriter.
w.Write([]byte("You learned Go in Y minutes!"))
}
+
+func requestServer() {
+ resp, err := http.Get("http://localhost:8080")
+ fmt.Println(err)
+ defer resp.Body.Close()
+ body, err := ioutil.ReadAll(resp.Body)
+ fmt.Printf("\nWebserver said: `%s`", string(body))
+}
```
## Further Reading