美文网首页
go 文件服务器问题

go 文件服务器问题

作者: stepyu | 来源:发表于2016-07-13 10:12 被阅读159次

    在调用go语言编写的server进行下载文件时出现

    java.net.ProtocolException: unexpected end of stream
        at com.squareup.okhttp.internal.http.HttpConnection$FixedLengthSource.read(HttpConnection.java:421)
    
    java.io.IOException: unexpected end of stream
        at com.squareup.okhttp.internal.http.HttpConnection$ChunkedSource.read(HttpConnection.java:467)
    

    原因:
    go server响应时的逻辑是

    n, err := io.Copy(w, f)
    

    go http 的底层tcp连接设置了(timeout)超时时间,由于文件过大或者并发过大,导致流没有复制完,所以出现上述报错
    出现第一种报错是因为,在go server端在上述代码前设置了content-length 而因为有content-length,所以调用read的具体方法不同
    参见http://stackoverflow.com/questions/26096944/when-responding-using-io-copy-who-should-be-responsible-for-the-error

    相关文章

      网友评论

          本文标题:go 文件服务器问题

          本文链接:https://www.haomeiwen.com/subject/uzmsjttx.html