【发布时间】:2012-07-25 05:00:53
【问题描述】:
我正在使用the HttpClient that is available on NuGet。
这是我开始的代码:
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());
}
问题:
我必须明确定义
RSS.Feed并使用 DataContract/DataMember 属性对其进行装饰。看起来确实应该内置一个 RSS 类。是吗? (也许我只是不知道)此操作失败,并出现异常,抱怨 RSS 提要中的处理指令。它实际上是一个样式表,我不在乎。我只想要数据。
例外是:
异常:System.AggregateException:发生一个或多个错误。 ---> System.InvalidOperationException: XML 文档 (1, 2) 中存在错误。 ---> System.Xml.XmlException:不支持处理指令(XML 声明除外)和 DTD。第 1 行,位置 2。
Feed 看起来像:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl"?>
<rss version="2.0">
<channel><title>blah foo fizz bang</title>....
关于更好的方法的任何提示?使用 HttpClient!!
我发现文档有点薄。
【问题讨论】:
标签: c# .net rss asp.net-web-api dotnet-httpclient