1
0
mirror of https://github.com/golang/go synced 2024-11-22 06:34:40 -07:00
go/doc/codelab/wiki/get.go
Russ Cox 634cef25c3 doc/codelab/wiki: fixes
make test.sh runnable as a command.
announce only on 127.0.0.1.
rebuild final-test.bin when final-test.go changes.

R=adg, r
CC=golang-dev
https://golang.org/cl/4030044
2011-01-28 09:42:51 -05:00

51 lines
808 B
Go

package main
import (
"http"
"flag"
"fmt"
"io"
"log"
"net"
"os"
"strings"
)
var (
post = flag.String("post", "", "urlencoded form data to POST")
addr = flag.Bool("addr", false, "find open address and print to stdout")
)
func main() {
flag.Parse()
if *addr {
l, err := net.Listen("tcp", "127.0.0.1:0")
if err != nil {
log.Exit(err)
}
defer l.Close()
fmt.Print(l.Addr())
return
}
url := flag.Arg(0)
if url == "" {
log.Exit("no url supplied")
}
var r *http.Response
var err os.Error
if *post != "" {
b := strings.NewReader(*post)
r, err = http.Post(url, "application/x-www-form-urlencoded", b)
} else {
r, _, err = http.Get(url)
}
if err != nil {
log.Exit(err)
}
defer r.Body.Close()
_, err = io.Copy(os.Stdout, r.Body)
if err != nil {
log.Exit(err)
}
}