mirror of https://github.com/golang/go.git
net/http: add some examples
R=golang-dev, dsymonds, adg, rogpeppe, bradfitz CC=golang-dev https://golang.org/cl/5673052
This commit is contained in:
parent
f3c3130685
commit
3a317183a1
|
|
@ -0,0 +1,51 @@
|
||||||
|
// Copyright 2012 The Go Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package http_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"log"
|
||||||
|
"net/http"
|
||||||
|
)
|
||||||
|
|
||||||
|
func ExampleHijacker() {
|
||||||
|
http.HandleFunc("/hijack", func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
hj, ok := w.(http.Hijacker)
|
||||||
|
if !ok {
|
||||||
|
http.Error(w, "webserver doesn't support hijacking", http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
conn, bufrw, err := hj.Hijack()
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Don't forget to close the connection:
|
||||||
|
defer conn.Close()
|
||||||
|
bufrw.WriteString("Now we're speaking raw TCP. Say hi: ")
|
||||||
|
bufrw.Flush()
|
||||||
|
s, err := bufrw.ReadString('\n')
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("error reading string: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Fprintf(bufrw, "You said: %q\nBye.\n", s)
|
||||||
|
bufrw.Flush()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func ExampleGet() {
|
||||||
|
res, err := http.Get("http://www.google.com/robots.txt")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
robots, err := ioutil.ReadAll(res.Body)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
res.Body.Close()
|
||||||
|
fmt.Printf("%s", robots)
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue