HttpClient.GetAsync работает в одном классе, но не в другом

#c# #windows #web #uwp #httpclient

#c# #Windows #веб #uwp #httpclient

Вопрос:

Вот где это работает:

 public class ThisWorks : IPortableHttpClient
{
    private Windows.Web.Http.HttpClient client;

    async public Task<Windows.Web.Http.HttpResponseMessage> GetAsync(Uri url)
    {
        return await client.GetAsync(url);
    }
  

И это не работает, и я не понимаю, почему:

 public class DoesntWork : IPortableHttpClient
{
    private Windows.Web.Http.HttpClient client;

    async public Task<Windows.Web.Http.HttpResponseMessage> GetAsync(Uri url)
    {
        return await client.GetAsync(url);
    }
  

При этом выдается сообщение об ошибке: await client.GetAsync(url)
И сообщение об ошибке таково: ‘IAsyncOperationWithProgress’ не содержит определения для ‘GetAwaiter’ и не удалось найти метод расширения ‘GetAwaiter’, принимающий первый аргумент типа ‘IAsyncOperationWithProgress’ (вам не хватает директивы using для ‘System’)?

Если это имеет значение, вот IPortableHttpClient:

 public interface IPortableHttpClient
{
    Task<HttpResponseMessage> GetAsync(Uri url);        
}
  

Еще одна информация, которая может быть полезной: код, в котором это работает, находится во фреймворке UWP. Это не работает в .NET framework.

Ответ №1:

Я использовал неправильное пространство имен.

Мне пришлось изменить Windows.Web.Http на System.Net.Http