环境: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. wamp+phpstrom+Xdebuge helper(google)

    一.软件安装两个软件的安装和第三个浏览器插件就不再赘述,网上有很多详细的教程,自行百度. 二.配置步骤1.wampwamp的优势在于自带xdebuge的dll文件,所以不需要在官网根据版本下载,具体位 ...

  2. asp.net core 浏览器向服务端传递对象或对象数组参数服务端接收方式

    日常开发中我们经常会在客户端向服务器端传递参数,下面以asp.net core为例 专门分享传递对象或对象数组方法 一.键值对专递对象 以下是一个表单,现在需求是将以下 表单 所有input元素以独享 ...

  3. MSDTC突然停用了,后台数据无法更新

    由于前台电脑停电突然关机,导致重启后发现MSDTC无法更新数据,重新添加了link,只能查询,更新失败,报错:无活动事务 1.修改host设置,在C:\Windows\System32\drivers ...

  4. 7.项目结构的构建和提交到gitee

    创建微服务模块 以商城项目的产品模块为例 点击Next,然后倒入依赖的包,Spring Web 然后在选择一个微服务和微服务之间调用需要的包:OpenFeign 导入这两个微服务的组件就行,后面需要用 ...

  5. pushd 和 popd

    可以把你当前的文件路径 放进一个栈里,后边拿出来 很方面的skim方法

  6. 剪裁圆形图片cropie

    <!DOCTYPE html> <html> <head> <script src="https://cdn.bootcss.com/jquery/ ...

  7. 方法综合练习:out、params、ref

    using System; namespace ConsoleApp1 { class Program { /// <summary> /// 求两个参数之间的最大值 /// </s ...

  8. Queries Gym - 100741A - 树状数组

    给定 \(n\) 和 \(m\),对于 \(n\) 个数字 \(a_i\),进行下列三种操作: (1) + p r: 将 p 位置的元素加上 r, 输出此时 p 位置的值: (2) - p r : 将 ...

  9. ABAP 物料主数据 屏幕增强按钮

    首先看效果,目标是在物料主数据中 基础数据页面新增一个按钮来满足跳转需求,这里以跳转百度为例 页面效果如下: 创建定制程序 事务代码 SPRO,路径:后勤-常规 -> 物料主数据 -> 配 ...

  10. threadlocal应用

    public class DataSourceSelector { /** * 线程threadlocal */ private static ThreadLocal<String> db ...