// 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)  //打印出来
	}
}