NJUPTjz 2018-08-09 12:00 采纳率: 0%
浏览 1852
已结题

Go web中多次POST后出现问题

 for i := 0; i < 1000; i++ {
    var tr *http2.Transport`
        if serverCer {
            tr = &http2.Transport{
                TLSClientConfig: &tls.Config{
                    RootCAs:      pool,
                    Certificates: []tls.Certificate{cliCrt},
                },
            }
        } else {
            tr = &http2.Transport{
                TLSClientConfig: &tls.Config{
                    RootCAs:            pool,
                    Certificates:       []tls.Certificate{cliCrt},
                    InsecureSkipVerify: true,
                },
            }
        }
        go client(url, &data, tr)
    }


func client(url string, data *[]byte, tr *http2.Transport) {
    httpClient := http.Client{Transport: tr}
    for i := 0; i < 10; i++ {
        fmt.Println("I:", i)
        fmt.Println("len:", len(*data))
        reader := bytes.NewReader(*data)
        if reader == nil {
            fmt.Println("reader is nil")
        }
        req, err := http.NewRequest("POST", url, reader)
        if err != nil {
            fmt.Println("NewRequest error:", err)
            panic(err)
        }
        req.Close = true
        resp, err := httpClient.Do(req)
        if err != nil {
            fmt.Println("Do error:", err)
            panic(err)
        }
        resp.Body.Close()
        time.Sleep(2 * time.Microsecond)
    }

谁能解释一下,为什么程序跑了大半后会在“resp, err := httpClient.Do(req)”一句报“Post https://localhost:6600/: unexpected EOF”的错误?在此谢谢了!

  • 写回答

3条回答 默认 最新

  • oyljerry 2018-08-09 12:18
    关注

    对应的连接是否已经断开。捕获错误,然后重新建立连接再发送数据等试试

    评论

报告相同问题?

悬赏问题

  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?