5

Вопрос по windows, webclient, c# – Альтернатива WebClient для Windows 8?

я используюWebClient получить данные Yahoo для Windows Phone 8 и Android HttpClient С помощью WebClient я могу сделать WebClient client = new WebClient(); client.DownloadStringCompleted += ...

<span>Вы смотрели?<code>HttpClient</code></span>

от Davin Tryon

1 ответ

8

Вы можете использовать класс HttpClient, примерно так:

public async static Task GetHttpResponse(string url)
{
    var request = new HttpRequestMessage(HttpMethod.Get, url);
    request.Headers.Add("UserAgent", "Windows 8 app client");

    var client = new HttpClient();
    var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead);

    if (response.IsSuccessStatusCode)
      return await response.Content.ReadAsStringAsync();
    else
     throw new Exception("Error connecting to " + url +" ! Status: " + response.StatusCode);
}

Более простая версия будет просто:

public async static Task GetHttpResponse(string url)
{
    var client = new HttpClient();
    return await client.GetStringAsync(url);
}

Но если произойдет ошибка http, GetStringAsync выдаст исключение HttpResponseException, и, насколько я могу судить, статус http не указан, за исключением сообщения об исключении.

ОБНОВЛЕНИЕ: я не сделалне заметил, что вы на самом деле пытаетесь читать RSS-канал, вы нене нужны HttpClient и анализатор XML, просто используйте класс SyndicationFeed, вот пример:

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh452994.aspx

Похожие вопросы