如何使用RSS.NET通过代理阅读RSS提要?

时间:2009-06-09 12:03:39

标签: c# rss

尝试使用RSS.NET。网站上的Example是:( C#)

string url = "http://sourceforge.net/export/rss2_sfnews.php?feed";
RssFeed feed = RssFeed.Read(url);
RssChannel channel = (RssChannel)feed.Channels[0];
listBox.DataSource = channel.Items;

但是,这会失败,因为我需要通过代理访问Feed。我该怎么做?

RssFeed.Read()的重载需要HttpWebRequest。我认为这可能是设置它的方法,但我之前没有用过。救命! :)

2 个答案:

答案 0 :(得分:4)

您确实可以使用RssFeed.Read()函数的HttpWebRequest重载。以下应该有效

string url = "http://sourceforge.net/export/rss2_sfnews.php?feed";
string proxyUrl = "http://proxy.example.com:80/";
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);
WebProxy proxy = new WebProxy(proxyUrl,true);
webReq.Proxy = proxy;
RssFeed feed = RssFeed.Read(webReq);

如果您需要代理的用户名和密码,则有一个更详细的示例here

答案 1 :(得分:2)

  1. RssFeed.Read()方法有一个重载,它接受HttpWebRequest。您可以在HttpWebRequest上设置代理并以这种方式读取它。这特别设置了RSS源的代理。您需要为阅读的每个Feed执行此操作。
  2. 在调用RssFeed.Read(String)之前,您可以使用System.Net.WebRequest.DefaultWebProxy设置默认代理。这只做一次;它将适用于您阅读的所有Rss提要,以及从您的应用程序发出的所有其他http通信。