Как использовать HttpClient для чтения XML-ответа?
По всей видимостиHttpClient
Это новый рекомендуемый способ создания HTTP-запросов, поэтому я пытаюсь использовать его для отправки запросов в Delicious API, который возвращает XML-ответ. Вот что у меня есть:
internal class Program
{
private static void Main(string[] args)
{
var credentials = new NetworkCredential("username", "password");
var handler = new HttpClientHandler { Credentials = credentials};
var client = new HttpClient(handler);
var suggest = new Uri("https://api.del.icio.us/v1/posts/suggest");
var suggestions =
client.GetAsync(suggest.AddQueryParams("url", "https://yahoo.com"))
.ContinueWith(t => t.Result.Content.ReadAsAsync<DeliciousSuggest>())
.Unwrap()
.Result;
Console.ReadLine();
}
}
public class DeliciousSuggest
{
public string[] Popular { get; set; }
public string[] Recommended { get; set; }
public string[] Network { get; set; }
}
Тем не менее, это исключение наReadAsAsync
немного,
Дополнительная информация: не удалось загрузить файл или сборку 'Newtonsoft.Json, версия = 4.5.0.0, Culture = нейтральный, PublicKeyToken = 30ad4fe6b2a6aeed' или одну из ее зависимостей. Система не может найти указанный файл.
Возможно, я скучаю по какой-то сборке, но меня это удивляет. Тип возвращаемого значения - XML, а не JSON, но я все еще не совсем уверен, как этоReadAsAsync
метод работает, или как бы я это уточнил.
Пример ответа выглядит так:
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<suggest>
<popular>yahoo!</popular>
<popular>yahoo</popular>
<popular>web</popular>
<popular>tools</popular>
<popular>searchengines</popular>
<recommended>yahoo!</recommended>
<recommended>yahoo</recommended>
<recommended>web</recommended>
<network>for:Bernard</network>
<network>for:britta</network>
<network>for:deusx</network>
</suggest>
Как я могу разобрать это в некоторый пригодный для использования формат?