123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Fetch prints the content found at a URL.
- package main
- import (
- "fmt"
- "io"
- "net/http"
- "os"
- "strings"
- )
- func main() {
- for _, url := range os.Args[1:] {
- if strings.HasPrefix(url, "http://") {
- fmt.Println("url:",url)
- } else {
- url = "http://" + url
- fmt.Println("url:",url)
- }
- resp, err := http.Get(url) //请求命令行参数传入的url
- fmt.Println("httpCode:",resp.Status)
- if err != nil {
- fmt.Fprintf(os.Stderr, "fetch: %v\n", err)
- os.Exit(1)
- }
- //创建文件
- fp, err := os.Create("./demo.html") // 如果文件已存在,会将文件清空。
- fmt.Println(fp, err) // &{0xc000076780} <nil>
- fmt.Println("%T???", fp) // *os.File 文件指针类型
- if err != nil {
- fmt.Println("文件创建失败")
- //创建文件失败的原因有:
- //1、路径不存在 2、权限不足 3、打开文件数量超过上限 4、磁盘空间不足等
- return
- }
- b, err := io.Copy(fp, resp.Body) //读body中的数据,放到内存
- if err != nil {
- fmt.Println("iO.Copy函数报错")
- return
- }
- fp.Close()
- resp.Body.Close()
- fmt.Printf("b:%d", b) //打印出来
- }
- }
|