2013-04-04 42 views
4

我想通過RSS獲得收件箱,當我使用Response.Redirect我能得到XML,但無法獲得作爲XML格式,它拋出(401)未經授權的錯誤我的代碼是通過RSS讀取Gmail收件箱供稿

string url = "https://myusername:[email protected]/mail/feed/atom"; 
    XmlReader reader = XmlReader.Create(url); 
    SyndicationFeed feed = SyndicationFeed.Load(reader); 
    reader.Close(); 

- > Response.redirect(url); //這是工作 任何一個可以對此有什麼想法, 或 是框架AE.Net.Mail.dll的任何VERSON 2.0

感謝您

回答

1

XmlReader類不能從解析認證信息該網址,你必須創建一個XmlSettings實例和其XmlResolver屬性設置爲具有其憑據設置用戶名和密碼的XmlUrlResolver實例。然後,當您創建XmlReader實例時,您將提供自定義XmlSettings實例。下面的代碼會做的伎倆:

// Create a resolver with your credentials 
XmlUrlResolver resolver = new XmlUrlResolver(); 
resolver.Credentials = new NetworkCredential("myusername", "mypassword"); 

// Set the reader settings object to use the resolver. 
XmlReaderSettings settings = new XmlReaderSettings(); 
settings.XmlResolver = resolver; 

string url = "https://mail.google.com/mail/feed/atom"; 

// Create the reader using the specified URL and settings 
XmlReader reader = XmlReader.Create(url, settings); 

SyndicationFeed feed = SyndicationFeed.Load(reader); 
reader.Close(); 

不過,我想這個代碼和以下XmlException被拋出: 「名爲‘飼料’和命名空間‘http://purl.org/atom/ns#’是不是允許飼料格式的元素。 「

似乎Google輸出的Feed與SyndicationFeed類別的格式不兼容。欲瞭解更多信息,請參閱:http://www.eggheadcafe.com/tutorials/csharp/9faa101f-0a1a-465f-a41a-3e52dd9f7526/everything-rss--atom-feed-parser.aspx

+0

感謝您的幫助,它爲我,最後,我忽略了同步和讀取直接讀取數據.. – 2013-04-04 07:57:57