Класс WebClient не существует в Windows 8 - PullRequest
18 голосов
/ 28 февраля 2012

Я хочу использовать веб-сервис HTTP, и я уже разработал приложение для wp7.

Я использую класс WebClient, но не могу использовать его для Windows 8 («ошибка: тип или пространство имен»).не может быть найден ").

Что еще я могу использовать?

Можете ли вы предоставить мне образец кода?

Есть ли у Microsoft сайт, чтобы помочь, когда пространство имен не существует?

1 Ответ

27 голосов
/ 28 февраля 2012

Вариант 1: HttpClient, если вам не нужно детерминированное уведомление о прогрессе, это то, что вы хотите использовать. Пример.

public async Task<string> MakeWebRequest()
{
       HttpClient http = new System.Net.Http.HttpClient();
       HttpResponseMessage response = await http.GetAsync("http://www.example.com");
       return await response.Content.ReadAsStringAsync();
}

Вариант 2. Когда вам нужны уведомления о прогрессе, вы можете использовать DownloadOperation или BackgroundDownloader . Этот образец на MSDN - хорошее начало.

Вариант 3. Поскольку вы упомянули веб-службу и, если она возвращает XML, вы можете использовать XmlDocument.LoadFromUriAsync , который вернет вам документ XML. Пример

public async void DownloadXMLDocument()
{
      Uri uri = new Uri("http://example.com/sample.xml");
      XmlDocument xmlDocument = await XmlDocument.LoadFromUriAsync(uri);
      //do something with the xmlDocument.
}

При разработке для метро .Net Framework будет ограничен по сравнению с настольной версией. Если вы видите ошибку namespace not found, это обычно происходит из-за этого факта. Эта ссылка в MSDN содержит список пространств имен, доступных для метро.

...