Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何仅读取HttpWebResponse的一部分_C#_.net_Httpwebrequest_Httpwebresponse_System.net - Fatal编程技术网

C# 如何仅读取HttpWebResponse的一部分

C# 如何仅读取HttpWebResponse的一部分,c#,.net,httpwebrequest,httpwebresponse,system.net,C#,.net,Httpwebrequest,Httpwebresponse,System.net,我只想阅读HttpWebResponse的一部分。比如说前10万。如何仅读取响应的前100k,但仍然以未损坏的子字符串结束?如果我只是将前100k放入一个字节[],我相信最终可能会导致数据损坏 HttpWebRequest request = HttpWebRequest.Create("http://www.yahoo.com") as HttpWebRequest; HttpWebResponse response = request.GetResponse

我只想阅读HttpWebResponse的一部分。比如说前10万。如何仅读取响应的前100k,但仍然以未损坏的子字符串结束?如果我只是将前100k放入一个字节[],我相信最终可能会导致数据损坏

        HttpWebRequest request = HttpWebRequest.Create("http://www.yahoo.com") as HttpWebRequest;

        HttpWebResponse response = request.GetResponse() as HttpWebResponse;

        using (Stream responseStream = response.GetResponseStream())
        {
            using (StreamReader sr = new StreamReader(responseStream))
            {
                string content = sr.ReadToEnd();
            }
        }

您不能期望通过限制字节长度来获得未损坏的子字符串


更好的方法是通过字符读取(
Read
ReadBlock
ReadLine
),直到您满意为止。

如果您只对响应流的一部分感兴趣,那么只请求该部分流是有意义的。当然,部分请求在100%的服务器上不受支持。不确定您的问题是什么-在您满意之前阅读字符串,而不是
ReadToEnd
。。。或者您有其他一些特殊情况?不管您如何读取,前100k字节始终是相同的。前100K字节是否具有任何有效含义取决于http服务器向您提供的内容。