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());
}
問題:
RSS.Feed
DataContract/DataMember属性で明示的に定義して装飾する必要がありました。RSSクラスを組み込む必要があるようです。そうですか?(たぶん私はそれについて知らないだけです)これは、RSSフィードの処理命令について不平を言う例外で失敗します。それは実際には私が気にしないスタイルシートです。データが欲しいだけです。
例外は次のとおりです。
例外:System.AggregateException:1つ以上のエラーが発生しました。---> 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を使用する!!
ドキュメントが少し薄いことがわかりました。