
Для меня фид больше чем технология, это признак того, буду ли я дальше пользоваться сайтом или нет. 90% всей информации я получаю как раз через них, а если на сайте отсутствует такая возможность, то сайт для меня "уходит в историю".
Разрабатывая сайт на ASP.NET понадобилось внедрить RSS фид, статьи на эту тему либо просто не до конца описывают механизм внедрения, либо вообще имеют программные ошибки. Вот я решил немного пролить свет на эту задачу.
Изобретать велосипед не буду, так что за основу берем ASP.NET RSS Toolkit. Данная библиотека обладает неплохим функционалом, детально смотрим на сайте http://aspnetrsstoolkit.codeplex.com/.
Внедрение Rss фида на сайт
Для внедрения Rss фида на сайт нам понадобится сделать 4-и действия:1. Качаем последнюю версию библиотеке ASP.NET RSS Toolkit. ASP.NET RSS Toolkit, Downloads.
2. Добавляем ссылку на библиотеку RssToolkit.dll в проект (Add reference).
3. Добавляем в проект новый элемент "Generic Handler" (например, RssFeed.ashx, в дальнейшем буду использовать ссылку на класс RssFeed).
4. Наследуем класс RssFeed от RssToolkit.Rss.RssDocumentHttpHandler и переопределяем метод PopulateRss, в котором и будет заполнен объект RSS.
public class RssFeed : RssDocumentHttpHandler
{
protected override void PopulateRss(string rssName, string userName)
{
Rss.Channel = new RssChannel();
Rss.Version = "2.0";
Rss.Channel.Title = "Тестовый RSS фид за 5 минут";
if (!string.IsNullOrEmpty(rssName))
{
Rss.Channel.Title += " '" + rssName + "'";
}
if (!string.IsNullOrEmpty(userName))
{
Rss.Channel.Title += " (generated for " + userName + ")";
}
Rss.Channel.PubDate = DateTime.Now.ToString("R");
Rss.Channel.LastBuildDate = DateTime.Now.ToString("R"); ;
Rss.Channel.Description = "Тестовый RSS фид за 5 минут";
Rss.Channel.Link = "http://localhost/RssFeed.ashx";
Rss.Channel.Items = new List<rssitem>();
var item = new RssItem
{
Title = "Название...",
Description = "Описание...",
PubDate = DateTime.Now.ToString("R"),
Link = "http://localhost/Default.aspx"
};
Rss.Channel.Items.Add(item);
item = new RssItem
{
Title = "Название...",
Description = "Описание...",
PubDate = DateTime.Now.ToString("R"),
Link = "http://localhost/News.aspx"
};
Rss.Channel.Items.Add(item);
}
}
Вот и все, переходим на нашу страницу и получаем RSS фид.
Распознавание браузером.
В ASP.NET RSS Toolkit 2.0.0.0 есть один небольшой баг. Для фида устанавливается Content-Type в значение "text/xml". В этом случае большинство современных браузеров не считают такой контент фидом (в любой rss "читалке" фид будет работать). Исправить это можно поменяв Content-Type на значение "application/rss+xml".Внес необходимую правку, для скачивания воспользуйтесь следующей ссылкой - RssToolkit.dll.
клевая статья, НО
ОтветитьУдалитькак я могу получать request,
мне нужно получать переменные с адресной строки запроса GET
Получение Get параметров (коллекция): Context.Request.QueryString
ОтветитьУдалитьПолучение Get параметров (строка): Context.Request.Url.PathAndQuery