背后HTTP代理
问题描述:
我试图使用列表中的FtpWebRequest类背后HTTP代理
private IEnumerable<ResourceInfo> EnumerateResources(Stream stream)
{
StreamReader reader = new StreamReader(stream);
string line = null;
while ((line = reader.ReadLine()) != null)
{
yield return new ResourceInfo(this, line);
}
}
public override IReadOnlyList<ResourceInfo> GetResources()
{
FtpWebRequest req = (FtpWebRequest)WebRequest.Create(Url);
req.Method = WebRequestMethods.Ftp.ListDirectory;
req.Credentials = Credentials;
using (var resp = (FtpWebResponse)req.GetResponse())
{
using (var stream = resp.GetResponseStream())
{
return EnumerateResources(stream).ToReadOnly();
}
}
}
这在大多数情况下,确定从FTP地址文件FTP LIST目录。 但是,当我在HTTP代理后面时,响应流的内容包含一个HTML页面 ,该页面列出和标签中的文件。有没有优雅的方式来处理这个问题,或者我应该试着手工解析HTML。
我已经开发了一个hack从代理生成的HTML中提取数据。如果有更优雅的方式去做,我只是在徘徊 – 2010-11-08 10:55:12