HttpClient.GetAsync работает в одном классе, но не в другом - PullRequest
0 голосов
/ 25 марта 2019

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

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 Ответ

1 голос
/ 25 марта 2019

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

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

...