我从 Rotten Tomatoes 网站获取了一个 json 格式的字符串。我的代码看起来像

HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(url);
webRequest.Method = "GET";
webRequest.ContentType = "application/json";

HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();

using(StreamReader reader = new StreamReader(response.GetResponseStream()))
{
    //Code I'm using the reader with
}

当我运行返回 1 - 4 部电影的电影搜索时,它工作正常。但是,如果我尝试获得 5 个或更多的结果,它将不起作用。 webResponse 内容长度为 -1。当我返回 4 部电影的结果时,内容长度为 7,449。

最佳答案

当 contentLength 返回 -1 时,这很可能是因为响应是在 chunked transfer encoding(或可能是 http“0.9”)中返回的。因此,在传输开始时没有已知的内容长度。只需阅读您的 StreamReader 直到最后,您就会拥有服务器发送给您的所有内容。

关于C# HttpWebResponse contentlength = -1 当文件太大时,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15375499/

10-12 06:01