有没有办法通过代理实现以下功能?
public T[] ReadStream(System.IO.TextReader reader);
我希望能够代理 reader
实例,以便它可以在读取尝试时从网络下载文件并将其缓存在某处。
或者为此目的可能有一些默认设置?
最佳答案
使用 WebClient.DownloadFile。如果需要代理,可以设置 WebClient 对象的 Proxy 属性。
这是一个例子:
using (var client = new WebClient())
{
client.Proxy = new WebProxy("some.proxy.com", 8000);
client.DownloadFile("example.com/file.jpg", "file.jpg");
}
您还可以使用 BinaryReader 按部分下载文件:
using (var client = new WebClient())
{
client.Proxy = new WebProxy("some.proxy.com", 8000);
using (var reader = new BinaryReader(client.OpenRead("example.com/file.jpg")))
{
reader.ReadByte();
reader.ReadInt32();
reader.ReadBoolean();
// etc.
}
}
关于C# 从网上下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5601061/