如何通过http提供流?

时间:2013-05-26 14:18:36

标签: c# .net

我正在为一个我几乎一无所知的系统编写一个xml解析器。我正在寻找为xml流设置本地副本,直到我可以查看提供流的系统,以便我可以在此期间编写测试等。

我简要地说明了xml流是通过http接近的。这是无穷无尽的数据流,如果直接在webbrowser中接近,它最终会崩溃,因为操作系统将耗尽内存。

现在,我正在尝试使用虚假数据设置本地流服务器,但我无法弄清楚如何通过http使这样的流可以接近。从一开始就是正确的吗?

public static Stream Create()
{
    var xmlDemo1 = TestResources.Strings.XmlResponseDataDemo(TestResources.Strings.XmlResponseDataDemoResource1);
    var demoDataLengthBytes = BitConverter.GetBytes(xmlDemo1.Length);
    var demoDataBytes = Encoding.UTF8.GetBytes(xmlDemo1);

    Func<byte[]> getBytes = () =>
        {
            var ret1 = new byte[demoDataLengthBytes.Length + demoDataBytes.Length];
            Buffer.BlockCopy(demoDataLengthBytes, 0, ret1, 0, demoDataLengthBytes.Length);
            Buffer.BlockCopy(demoDataBytes, 0, ret1, demoDataLengthBytes.Length, demoDataBytes.Length);
            return ret1;
        };

    var ret = new MemoryStream();
    Task.Factory.StartNew(() =>
        {
            while (true)
            {
                var buffer = getBytes();
                ret.Write(buffer, 0, buffer.Length);
            }
        });

    return ret;
}

我将长度预先设置为发送的字节长度,这可能根本不需要,但是直到稍后我都无法想出那个。

0 个答案:

没有答案