| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package xnet
- import (
- "bytes"
- "fmt"
- "golang.org/x/text/encoding/simplifiedchinese"
- "os/exec"
- )
- // Wget 调用wget.exe下载,-t参数表示重试次数,-T参数表示超时等待时间,-w两次尝试之间间隔SECONDS秒,-O把文档写到FILE文件中
- func Wget(url, localPath string) (err error) {
- cmd := exec.Command("wget.exe", url, "-t", "3", "-T", "25", "-w", "3", "-O", localPath)
- var stdout bytes.Buffer
- var stderr bytes.Buffer
- cmd.Stdout = &stdout
- cmd.Stderr = &stderr
- err = cmd.Run()
- if err != nil {
- fmt.Println(fmt.Sprint(err) + ": " + ConvertByte2String([]byte(stderr.String()), GB18030))
- return err
- }
- fmt.Println("Result: " + stdout.String())
- return
- }
- type Charset string
- const (
- UTF8 = Charset("UTF-8")
- GB18030 = Charset("GB18030")
- )
- // ConvertByte2String cmd输出内容转中文
- func ConvertByte2String(byte []byte, charset Charset) string {
- var str string
- switch charset {
- case GB18030:
- decodeBytes, _ := simplifiedchinese.GB18030.NewDecoder().Bytes(byte)
- str = string(decodeBytes)
- case UTF8:
- fallthrough
- default:
- str = string(byte)
- }
- return str
- }
|