今天在做Proxy 转发请求的时候发现 GET的请求转发时一直在等待输出。
而Post等其它操作是可以的。
同事告诉我一般一直等待响应可能是输出内容长度和头部ContentLength不一致导致的,
仔细一看服务器响应头中有Transfer-Encoding: chunked
Transfer-Encoding: chunked 表示输出的内容长度不能确定,普通的静态页面、图片之类的基本上都用不到这个。
但动态页面就有可能会用到,但我也注意到大部分asp,php,asp.net动态页面输出的时候大部分还是使用Content-Length,没有使用Transfer-Encoding: chunked。
所以在转发的响应的时候移除该头就可以了context.Response.Headers.Remove("Transfer-Encoding");