我正在使用NuGet 上可用的 HttpClient。
这是我开始的代码:
string url = "http://example.com/rssfeed.rss";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.UserAgent.Clear();
client.DefaultRequestHeaders.Add("User-Agent", "CheesoTest");
var task = client.GetAsync(url);
try
{
task.Wait();
HttpResponseMessage resp = task.Result;
var t2 = resp.Content.ReadAsAsync<RSS.Feed>();
t2.Wait();
var result = t2.Result;
}
catch (Exception e1)
{
MessageBox.Show("Exception: " + e1.ToString());
}
问题:
我必须使用 DataContract/DataMember 属性显式定义
RSS.Feed
和装饰它。看起来确实应该内置一个 RSS 类。是吗?(也许我只是不知道)这会失败,并出现一个抱怨 RSS 提要中的处理指令的异常。它实际上是一个样式表,我不在乎。我只想要数据。
例外是:
异常:System.AggregateException:发生一个或多个错误。---> System.InvalidOperationException: XML 文档 (1, 2) 中存在错误。---> System.Xml.XmlException:不支持处理指令(XML 声明除外)和 DTD。第 1 行,位置 2。
提要如下所示:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl"?>
<rss version="2.0">
<channel><title>blah foo fizz bang</title>....
关于更好的方法的任何提示?使用 HttpClient!!
我发现文档有点薄。