Go问答 Unsolicited response received on idle HTTP channel starting with "整 906882"; err=<nil>

chenli · 2020年04月08日 · 最后由 chenli 回复于 2020年04月08日 · 270 次阅读

各位大神,我又来啦,问一下各位大神,我在用 go 下载一些文件到服务器的时候经常出现这个提示,然后返回的文件就不完整了,请问一下这是什么回事?我怎么能够捕获到这个异常呢?

Unsolicited response received on idle HTTP channel starting with "整906882"; err=<nil>
更多原创文章干货分享,请关注公众号
  • 加微信实战群请加微信(注明:实战群):gocnio

可以提供简单的 demo 演示

kevin 回复

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "time"
)

const SAVEPATH  = "./books/"

func main()  {
    url := "http://e.xstt5.com/e/DownSys/doaction.php?enews=DownSoft&classid=17&id=13962&pathid=0&pass=ef534c12904aba4acd8f618960738593&p=:::"




    res,err := http.Get(url)
    defer res.Body.Close()
    if err != nil || res.StatusCode != 200{
        fmt.Printf("下载失败:%s", res.Request.URL)
    }
    fmt.Printf("开始读取文件内容,url=%s\n", url)
    data ,err2 := ioutil.ReadAll(res.Body)
    if err2 != nil {
        fmt.Printf("读取数据失败")
    }

    ioutil.WriteFile("./books/" + fmt.Sprint(time.Now().Format("20060102150304")) + ".txt", data, 0644)

}



chenli 回复

原因是服务器返回了一个非标准的返回信息,只是库报了一个 warn 信息,数据其实是正常读取了。

kevin 回复

嗯嗯呐,非常感谢大佬指教👍

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册