2010-11-05 75 views
0

我試圖使用列表中的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。

回答

0

你應該看看使用HTML Agility Pack。但是如果你提供完全的格式,可以製作更簡單的東西。

+0

我已經開發了一個hack從代理生成的HTML中提取數據。如果有更優雅的方式去做,我只是在徘徊 – 2010-11-08 10:55:12