问题代码1
func main() {
	go func() {
		pingHttp("https://www.qq.com/")
		pingHttp("https://www.baidu.com/")
		pingHttp("https://www.bing.com/")
	}()
}
//ping网址
func pingHttp(url string) {
	// 获取状态码
	client := resty.New()
	resp, err := client.R().Get(url)
	if err != nil {
		fmt.Println(err)
	}
	//获取状态码
	fmt.Println("Status Code:", resp.StatusCode())
	//获取文件大小
	fmt.Println("Size:", resp.Size())
	//获取文件返回的源代码
	fmt.Println(resp)
}

运行之后出现无打印效果,我记得有输出打印呀,后来发现,因为我使用了go的异步请求,程序结束了,异步请求再去获取数据已经晚了,所以我进行了修改

修正问题1

不适用golang同步就像以下这么改

func main() {
	webArr := []string{"https://www.qq.com/", "https://www.php-china.com/", "https://www.so.com/?src=so.com", "https://www.sogou.com/", "https://www.baidu.com/", "https://www.bing.com/"}
	// wg.Add(len(webArr))
	for i := 0; i < len(webArr); i++ {
		go func(url string) {
			pingHttp(url)
		}(webArr[i])
	}
	// wg.Wait()
	sig := make(chan os.Signal)
	signal.Notify(sig, os.Interrupt, os.Kill)
	<-sig
}

//ping网址
func pingHttp(url string) {
	// 获取状态码
	client := resty.New()
	resp, err := client.R().EnableTrace().SetHeader("Range", "bytes=0-1023").Get(url)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println("Status Code:", resp.StatusCode()) //返回的状态码
	fmt.Println("Size:", resp.Size())              //大小
	fmt.Println("Time:", resp.Time())              //加载速度
	fmt.Println("url:", url)                       //访问的路径
	// fmt.Println(resp)
	// wg.Done()
}
func main() {
	webArr := []string{"https://www.qq.com/", "https://www.baidu.com/", "https://www.bing.com/", "https://www.php-china.com/"}
	wg.Add(len(webArr))
	go func(webArr []string) {
		for i := 0; i < len(webArr); i++ {
			pingHttp(webArr[i])
		}
	}(webArr)
	// wg.Wait()
	sig := make(chan os.Signal)
	signal.Notify(sig, os.Interrupt, os.Kill)
	<-sig
}

//ping网址
func pingHttp(url string) {
	// 获取状态码
	client := resty.New()
	resp, err := client.R().EnableTrace().SetHeader("Range", "bytes=0-1023").Get(url)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println("Status Code:", resp.StatusCode())
	fmt.Println("Size:", resp.Size())
	
	wg.Done()
}
问题2

如果我要ping这些网站,输出内容,就会出现中文乱码,何时出现中文乱码,都需要我进行判断,所以我需要判断编码格式,然后再编码转换。同时使用resty请求的一些技巧和设置
不错的resty介绍网址
https://www.cnblogs.com/jiujuan/p/14583605.html

修正问题2
type Charset string

const (
	UTF8    = Charset("UTF-8")
	GB18030 = Charset("GB18030")
	UNKNOWN = Charset("UNKNOWN")
)

func main() {
	webArr := []string{"https://www.bing.com/", "https://www.qq.com/", "https://www.php-china.com/", "https://www.so.com/?src=so.com", "https://www.sogou.com/", "https://www.baidu.com/"}
	// wg.Add(len(webArr))
	for i := 0; i < len(webArr); i++ {
		go func(url string) {
			pingHttp(url)
		}(webArr[i])
	}
	// wg.Wait()
	sig := make(chan os.Signal)
	signal.Notify(sig, os.Interrupt, os.Kill)
	<-sig
}

//ping网址
func pingHttp(url string) {
	// 获取状态码
	client := resty.New()
	//ForceContentType强制让resty按照特定的格式来解析响应
	//EnableTrace()方法启用 trace。启用 trace 可以记录请求的每一步的耗时和其他信息
	resp, err := client.R().EnableTrace().ForceContentType("application/json").Get(url)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println("Status Code:", resp.StatusCode()) //返回的状态码
	fmt.Println("Size:", resp.Size())              //大小
	fmt.Println("Time:", resp.Time())              //加载速度
	fmt.Println("url:", url)                       //访问的路径

	coding := GetStrCoding([]byte(resp.String()))
	res := ConvertByte2String([]byte(resp.String()), coding)
	fmt.Println(res)
}
//内容编码格式转换
func ConvertByte2String(byte []byte, charset Charset) string {
	var str string
	switch charset {
	case GB18030:
		var decodeBytes, _ = simplifiedchinese.GB18030.NewDecoder().Bytes(byte)
		str = string(decodeBytes)
	case UTF8:
		fallthrough
	default:
		str = string(byte)
	}

	return str
}
func preNUm(data byte) int {
	var mask byte = 0x80
	var num int = 0
	//8bit中首个0bit前有多少个1bits
	for i := 0; i < 8; i++ {
		if (data & mask) == mask {
			num++
			mask = mask >> 1
		} else {
			break
		}
	}
	return num
}

//判断内容编码格式
func GetStrCoding(data []byte) Charset {
	if isUtf8(data) == true {
		return UTF8
	} else if isGBK(data) == true {
		return GB18030
	} else {
		return UNKNOWN
	}
}

//判断是否为中文编码
func isGBK(data []byte) bool {
	length := len(data)
	var i int = 0
	for i < length {
		if data[i] <= 0x7f {
			//编码0~127,只有一个字节的编码,兼容ASCII码
			i++
			continue
		} else {
			//大于127的使用双字节编码,落在gbk编码范围内的字符
			if data[i] >= 0x81 &&
				data[i] <= 0xfe &&
				data[i+1] >= 0x40 &&
				data[i+1] <= 0xfe &&
				data[i+1] != 0xf7 {
				i += 2
				continue
			} else {
				return false
			}
		}
	}
	return true
}

//判断是否为utf-8编码
func isUtf8(data []byte) bool {
	i := 0
	for i < len(data) {
		if (data[i] & 0x80) == 0x00 {
			// 0XXX_XXXX
			i++
			continue
		} else if num := preNUm(data[i]); num > 2 {
			// preNUm() 返回首个字节的8个bits中首个0bit前面1bit的个数,该数量也是该字符所使用的字节数
			i++
			for j := 0; j < num-1; j++ {
				//判断后面的 num - 1 个字节是不是都是10开头
				if (data[i] & 0xc0) != 0x80 {
					return false
				}
				i++
			}
		} else {
			//其他情况说明不是utf-8
			return false
		}
	}
	return true
}

个人网站:https://www.php-china.com/
如有错误,请多多指教。
如对你有帮助,给个赞吧。