我有一个C#反向代理。它正在为一种内部服务(A)工作,但有一项在失败(B)。 我正在使用邮递员进行测试。 连接到(A)在反向代理日志中显示以下内容。
DEBUG - Internal server responded with 22119
DEBUG - Internal server responded
<!doctype html>
<html lang="en">
....
连接到(B)在反向代理日志中显示以下内容。
DEBUG - Internal server responded with 4478
DEBUG - Internal server responded
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- Login page -->
<HTML>
基本行包括在下面
byte[] responseData = server.GetResponseStreamBytes(internalResponse);
Log.Debug("Internal server responded with " + responseData.Length.ToString());
Log.Debug("Internal server responded \n" +
System.Text.Encoding.UTF8.GetString(responseData));
for (int i = 0; i < internalResponse.Headers.Count; ++i)
{
externalResponse.AddHeader(internalResponse.Headers.Keys[i], internalResponse.Headers[i]);
}
externalResponse.OutputStream.Write(responseData, 0, responseData.Length);
externalResponse.End();
通过调试,这是一行
externalResponse.End();
导致Postman报告“无法获得任何响应”的,write语句正确执行。 如果直接通过浏览器连接,则A和B服务都可以正常工作。
答案 0 :(得分:0)
内部服务正在返回分块响应。将所有标头传输回客户端会导致ERR_INVALID_CHUNKED_ENCODING,该错误仅通过Chrome可见,而邮递员则不可见。通过删除“ Transfer-Encoding”标头来解决。