环境:golang,使用http client,服务器:iis +aspx.net
动作:head请求或其他
此问题见于各种请求情况。核心是,http在活动期间收到了非预期的信息。
一开始我也很纳-闷,因为下载小文件不出错,大一点的就出错了,而且开始无法找到原因。
但找到原因后就豁然开朗了。

这个消息“Unsolicited response received on idle HTTP channel starting with 。。。”的意思是,客户端已经准备收工了,以为事情已经完了,却收到了服务端-发来的非预期的内容。有这些情况:
1、客户端发起了纯HEAD的请求(Request.RequestType=HEAD),服务端却给你发来了body响应。
一般是因为server端进行了redirect或transfer,在这些转向的过程中丢掉了一些信息,比如我是丢掉了HEAD而用GET取代了,导致服务端发来了body,客户端取得header后,发现还有body,这就出错了。
这个原因应该是大多数人的主要原因。

解决方案是:清理你的请求,中间不要更换requestType,比如get的话始终get,post也一样,尤其要关注HEAD请求,因为server中很容易把这个丢了,因为该信息在aspx.net中不存储在header中,只在request.requestType字段中,而导致使用了默认的get。

比如

Server.TransferRequest(datakey.Substring(5),true,"GET",this.Request.Headers,true);//可支持range,但不能支持HEAD请求,这句是有bug的
Server.TransferRequest(datakey.Substring(5),true, Request.RequestType, this.Request.Headers,true);//可支持range\HEAD请求,这句就完善了

2、响应内容超出了给出的length,这种很难说,很可能也与redirect或自动输出。流有关,你的header里面说的是a个byte,但实际上发送的数据比这个多了。

这个问题的解决方案就是:排除对应的数量错误。

希望这对于golang或http.net开发的人员来说,是个有价值的信息。

解决和根源:Unsolicited response received on idle HTTP channel starting with xxx的更多相关文章

  1. 解决PEnetwork启动的时候提示"An error occured while starting the "TCP/IP Registry Compatibility" Service (2)!"程序将立即退出的问题

    解决PEnetwork启动的时候提示"An error occured while starting the "TCP/IP Registry Compatibility" ...

  2. 解决:Could not parse response code.Server Reply: SSH-2.0-OpenSSH_5.3

    [摘要:办理:org.apache.commons.net.MalformedServerReplyException: Could not parse response code.Server Re ...

  3. [已解决]报错: Error response from daemon: conflict

    报错内容: Error response from daemon: conflict: unable to delete f5b6ef70d79b (must be forced) - image i ...

  4. 解决报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshaketimeout

    报错: [root@localhost /]# sudo docker pull ubuntuError response from daemon: Get https://registry-1.do ...

  5. restsharp 组件调用返回 gbk 编码的api,中文乱码解决方法。(restsharp response 中文乱码 gbk)

    最近要调一个restful风格的api 用了 一个开源第三方组件,组件还是蛮好用的, 支持直接按参数定义实体类,然后发起请求之前直接 addobject 的方式就把请求参数给添加进去了, 解码的时候可 ...

  6. Incomplete response received from application

    RAILS_ENV=production rake secret 将输出的一大串字码粘贴到rails工程中/config/secrets.yml去,替换掉该文件中的<%= ENV["S ...

  7. 解决报错Error response from daemon: Get https://10.0.0.110/v2/: dial tcp 10.0.0.110:443: connect: connection refused

    修改 #https不需要验证,否则要加上以下配置# 意思就是非安全仓库,加上重启就OK了! vim /lib/systemd/system/docker.service --insecure-regi ...

  8. 解决:Specifying a namespace in include() without providing an app_name和XXX is not a registered namespace问题

    python3 Django 环境下,如果你遇到namespace没有注册以及在根目录下urls.py中的include方法的第二个参数namespace添加之后就出错的问题. 出错问题: 'Spec ...

  9. 异常解决:non-compatible bean definition of same name and class【com.xxx.xxx.XXX】

    昨天同事遇到这样一个问题,意思是spring找到 有相同的实现类名在不同的package目录下. 跟踪他的项目代码并未发现问题.   重新给他的maven项目进行maven install一下. 查看 ...

  10. 使用SSH连接解决git报错:fatal: unable to access 'https://github.com/xxx/xxx.github.io.git/': Proxy CONNECT aborted

    TL;DRs 这个错误的原因和HTTPS的代理配置有关,使用SSH方式连接可以避免这一问题 最近git pull和push的时候总是报错 fatal: unable to access 'https: ...

随机推荐

  1. SQL0818N/SQL0901N error when running db2advis

    Skip to content     Support     DownloadsDocumentationForumsCasesMonitoringManage support account   ...

  2. String intern的理解

    String s1 = "Programming";   s1在栈内存中,Programming在常量池中. String s2 = new String("Progra ...

  3. debug 获取mybatis dao 连接的数据库

    MapperProxy.invoke MapperMethod.execute 查看sqlSession .

  4. div css 页面中心弹窗窗口

    <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...

  5. 19c 滚动升级

    一.环境说明   节点1 节点2 IP 192.168.3.77 192.168.3.88 DB 版本 Oracle 19.6.0.0.0 Oracle 19.6.0.0.0 OS 主机名 oadb1 ...

  6. 批量导入数据到redis--速度极快

    ##批量导入数据到redis1)创建含有redis命令的文本并转换格式vim test.txt-------------------------HMSET provinceblack:14716261 ...

  7. Software--EB--Project 身份验证

    2018-01-09  16:57:51 身份验证服务 应该有两种形式得身份验证机制: 1. 在其他网站上又 Web 账号得顾客在注册或登陆到该网站时候应该能够使用这些账号. 2.没有的顾客或者希望新 ...

  8. etcd使用Cfssl生成自签证书(pem)

    CFSSL是CloudFlare开源的一款PKI/TLS工具,CFSSL包含一个命令行工具和一个用于签名,验证并且捆绑TLS证书的HTTP API服务,环境构建方面需要 Go 1.12+. 需要两套证 ...

  9. scala调用fastjson JSON.toJSONString()序列化对象出错

    在scala中需要将case class 序列化为string,代码如下 results.map(JSON.toJSONString(_)).foreach(println) case class p ...

  10. 解决vuex 状态管理mutations报错为:"[vuex] unknown mutation type: VIWE_NAV"

    报错截图: 我的解决思路: 1.先检查gettes方向获取与actions提交是否畅通,同时专注检查code是否输错. 2.我查了别人多数是""在vuex中没有mutation,有 ...