分享
  1. 首页
  2. 文章

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

学思 · · 10779 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

packagemain
import(
"fmt"
"io/ioutil"//[1]
"net/http"//[2]
"os"//[3]
"path/filepath"//[4]
)
funcmain(){
iflen(os.Args)!=2{
fmt.Printf("useage:%shttp://url",filepath.Base(os.Args[0]))
os.Exit(1)
}
resp,err:=http.Get(os.Args[1])
iferr!=nil{
fmt.Println(err)//go语言会内含详细的错误描述,可以尝试不同的参数来测试
os.Exit(2)
}
deferresp.Body.Close()//Theclientmustclosetheresponsebodywhenfinishedwithit:
body,err2:=ioutil.ReadAll(resp.Body)//此处使用了包【1】
iferr2!=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页面

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
10779 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏