C# - GetStringAsync никогда не возвращается, правильный способ выполнения асинхронного GETC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 C# - GetStringAsync никогда не возвращается, правильный способ выполнения асинхронного GET

Сообщение Гость »

У меня есть консольное приложение, в котором пользователь вводит строку (например, число «1»), а я делаю запрос GET в соответствии с введенным числом и возвращаю строковый результат GET.

Я хочу сделать это асинхронно, потому что, как правило, все операции ввода-вывода должны выполняться асинхронно, поэтому я в основном хочу выполнить GET, дождаться результата и вернуть результат. строку.

Мой код:

Код: Выделить всё

    public async Task getClassName()
{
Task myTask = getClassNameFromClassNamer();
// Do something here
string page = await myTask;
return page;
}

public async Task getClassNameFromClassNamer() /
{
string url = "...";
using (var client = new HttpClient())
{
return await client.GetStringAsync(url);
}
}
Теперь GetStringAsync никогда не возвращается, и окно cmd просто закрывается.

Я также пробовал использовать ConfigurationAwait(continueOnCapturedContext: false);, не помогло.

Когда я пытался использовать

Код: Выделить всё

result = httpClient.GetStringAsync("...").Result;
это сработало, но у меня такое ощущение, что это не действительно асинхронно..

Я работаю в .NET 4.5

РЕДАКТИРОВАТЬ:
метод вызова:

Код: Выделить всё

    public async Task execFeature()
{
string response = await webApi.getClassName();
IResult result = new TextResult(response);
result.display();
}
и:

Код: Выделить всё

public async Task startService()
{
....
await feature.execFeature();
}
и в Program.cs:

Код: Выделить всё

featureService.startService();
Итак, у меня 2 вопроса:
  • Что такое правильный способ выполнения асинхронного GET на сервере? Я хочу выполнить GET, получить строковый результат и вернуть строку.
  • Насколько я знаю, каждый веб-запрос должен выполняться асинхронно, потому что мы хотите, чтобы другой код в приложении (пользовательский интерфейс, логика) продолжал работать. Несмотря на то, что прямо сейчас у меня нет никаких других операций или другого пользовательского интерфейса, чтобы оставаться отзывчивым (консольное приложение), и я в основном просто жду ответа от сервера, я чувствую, что это хорошо попрактикуйтесь выполнять запросы в асинхронном режиме. Это звучит правильно?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/369 ... -async-get
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Тестирование приспособления асинхронного контекстного менеджера в pytest дает неожиданный объект асинхронного генератора
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • HttpClient GetStringAsync для веб-сайта Best Buy
    Гость » » в форуме C#
    0 Ответы
    29 Просмотры
    Последнее сообщение Гость
  • HttpClient.GetStringAsync предоставляет мне зашифрованный HTML-контент
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Обработка кодов ответов HTTP в GetStringAsync
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Проблема с использованием `httpclient.getStringAsync`
    Anonymous » » в форуме C#
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»