使用go的net/http实现读取web页面

package main
 
  
import (
 "fmt"
 "io/ioutil" //[1]
 "net/http" //[2]
 "os" //[3]
 "path/filepath" // [4]
)
 
  
func main() {
 if len(os.Args) != 2 {
 fmt.Printf("useage:%s http://url", filepath.Base(os.Args[0]))
 os.Exit(1)
 }
 resp, err := http.Get(os.Args[1])
 if err != nil {
 fmt.Println(err) //go语言会内含详细的错误描述,可以尝试不同的参数来测试
 os.Exit(2)
 }
 defer resp.Body.Close() //The client must close the response body when finished with it: 
 body, err2 := ioutil.ReadAll(resp.Body) //此处使用了包【1】
 if err2 != nil {
 fmt.Println(err2)
 os.Exit(3)
 }
 fmt.Printf("%s", body)
 
  
}
 
 

##生成程序测试
getwebpage.exe
useage:getwebpage.exe http://url
getwebpage.exe http://ww
Get http://ww: dial tcp: GetAddrInfoW: No such host is known.
getwebpage.exe htt
Get htt: unsupported protocol scheme ""

相关说明 
在DOS里执行命令 “godoc -http=:8000”后可以查到相关包
http://127.0.0.1:8000/pkg/net/http/
http://127.0.0.1:8000/pkg/io/ioutil/#ReadAll
Package http provides HTTP client and server implementations.
Get, Head, Post, and PostForm make HTTP (or HTTPS) requests:
resp, err := http.Get("http://example.com/")
...
resp, err := http.Post("http://example.com/upload", "image/jpeg", &buf)
...
resp, err := http.PostForm("http://example.com/form",
  url.Values{"key": {"Value"}, "id": {"123"}})

//func ReadAll(r io.Reader) ([]byte, error)
ReadAll reads from r until an error or EOF and returns the data it read. A successful call returns err == nil, not err == EOF. Because ReadAll is defined to read from src until EOF, it does not treat an EOF from Read as an error to be reported.

本文来自:开源中国博客

感谢作者:学思

查看原文:使用go的net/http实现读取web页面

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。