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.Fatal(err) | |
} | |
defer l.Close() | |
fmt.Print(l.Addr()) | |
return | |
} | |
url := flag.Arg(0) | |
if url == "" { | |
log.Fatal("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.Fatal(err) | |
} | |
defer r.Body.Close() | |
_, err = io.Copy(os.Stdout, r.Body) | |
if err != nil { | |
log.Fatal(err) | |
} | |
} |