我们有一个用.net编写的小型代理服务器。核心代理功能的简化版本:
builder.Run(async ctx =>
{
using (HttpClient client = new HttpClient())
{
await client.SendAsync(BuildRequest(), HttpCompletionOption.ResponseHeadersRead)
.ContinueWith(t => t.Result.Content.CopyToAsync(ctx.Response.Body));
}
});
这个想法是代理将简单地将任何下游响应流回到尽可能原始的调用客户端。
代理和服务之间的连接似乎工作正常,总是返回我期望的17kb数据。问题出在客户端和代理之间,发送相同的请求会导致响应被截断,介于0到17kb之间,显然没有理由。