【发布时间】:2026-01-24 13:25:01
【问题描述】:
我有发送 HttpRequest 并以字符串形式获取 json 的代码。代码工作正常,但是当服务器启动时它包含菱形和不可读的字符串sending tranfer-encoding chunked response 我尝试使用缓冲区并将文本读入 stringBuilder 但它不能很好地工作。我在一些答案中读到 HttpWebRequest 已过时,我应该使用 HttpClient。我已经在 HttpClient 中重写了我的代码,但问题仍然存在。我在浏览器中打开网址,它工作正常,加载需要几秒钟,我没有看到传输编码块。
请检查代码,
HttpClientHandler handler = new HttpClientHandler();
handler.CookieContainer = cookies;
var client = new HttpClient(handler);
var ans = client.GetAsync(strURL).Result;
var resStream = ans.Content.ReadAsStringAsync().Result;
我已经应用了 8192 字节缓冲区并从 SO 中读取,不适用于此代码,并在过去几个小时内尝试了来自 SO 的许多代码。请检查我的代码有什么问题。我可以在标头中设置一些内容来简单地拒绝分块 html,或者有一种方法可以从响应中读取分块 html。
【问题讨论】:
-
我强烈怀疑这与传输编码无关。这有帮助吗:*.com/a/28131841/14357 ?
-
@spender 请检查我在代码中添加的屏幕截图,我得到这样的文本,在浏览器中粘贴相同的 url 但在 c# 中它不可读。
标签: c# httpclient chunked-encoding