2010-02-25 34 views
0

作爲我們應用程序的一部分,我們需要下載RSS源。我們的客戶有一個內部的RSS源,可以在IE/Firefox中正常工作,但不適用於我們的應用程序。內部RSS源無法使用webClient對象

該應用程序嘗試從網址下載。我不知道究竟錯在這裏:

RssChannelDom DownloadChannelDom(string url) 
{ 
    RssChannelDom dom = null; 

    System.Net.Cache.RequestCachePolicy policy = 
     new System.Net.Cache.RequestCachePolicy(
      System.Net.Cache.RequestCacheLevel.BypassCache); 

     WebClient client = new WebClient(); 
     client.CachePolicy = policy; 
     client.Headers.Add("User-Agent", "Mozilla/4.0"); 
     byte[] feed = client.DownloadData(url); 

     // parse it as XML 
     XmlDocument doc = new XmlDocument(); 

     doc.Load(new MemoryStream(feed)); 

     return dom; 
} 

客戶端的URL看起來像:

http://sampleclient/diapatents/index.php/Special:Ask/ 
    -5B-5BCategory:Patent_Alert 
    -5D-5D-20-5B-5BResearch-20Unit::Allergy_and_Respiratory 
    -5D-5D-20-5B-5BOrganisation:: 
    -5D-5D-20-5B-5BTarget:: 
    -5D-5D-20-5B-5BIndication:: 
    -5D-5D-20-5B-5BDate:: 
    -20-3E-20-0A-5D-5D-20-5B-5BRevised-20Since:: 
    -20-3E-20-0A2009-2D8-5D-5D/sort-3DDate/order-3DDESC/ 
    format-3Drss/rsstitle%3DPfizerpediaPatents/rssdescription-3DRSS-20Feed: 
    -20Allergy-20and-20Respiratory-20recently-20uploaded-20or-20revised/ 
    limit%3D400 

回答

0

你是不是真正的指定問題是什麼。你需要更具體地指出你的程序如何失敗

話雖這麼說,我會檢查以下內容:

  • 查看HTTP結果代碼是什麼。它應該是200.如果不是,那麼它可能表示您提交了格式錯誤的請求。
  • 如果HTTP結果代碼是200,那麼看看返回的流的實際內容。它甚至是XML,還是其他可能表明錯誤的東西?
2

您總是返回null,因爲您不會對您要返回的dom變量做任何事情。