Вызов GetAsync в Blazor WebAssembly завершается с ошибкойC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Вызов GetAsync в Blazor WebAssembly завершается с ошибкой

Сообщение Anonymous »

Я считаю, что здесь происходит нечто, чего я не понимаю в Blazor, возникшем в результате разработки Windows Forms. Я пытаюсь получить данные из API, который, как я знаю, работает и правильно доставляет данные в другое приложение. Мне кажется, что код завершается до завершения асинхронного вызова.
Он аварийно завершился на строке httpClient.GetAsync. В целях тестирования этот вызов выполняется, когда страница загружается с помощью функции OnInitializedAsync.
Я следовал двум разным руководствам, но оба дают один и тот же результат, что и .GetAsync Ошибка вызова: https://code-maze.com/blazor-webassembly-httpclient/ и
Пожалуйста. Помогите.
Спасибо!
Класс обслуживания:
public class RecipeService : IRecipeService
{
private readonly HttpClient httpClient;

private string baseURL = clConstants.SERVER_PATH;
private string apiEndPoint = "getRecipeByID/";

public RecipeService(HttpClient httpClient)
{
this.httpClient = httpClient;
}

async Task IRecipeService.getRecipeByID(int id)
{
ConfigureHTTPClient();

string URL = clConstants.SERVER_PATH + apiEndPoint + id.ToString();

// Crashes on this line of code
var res = httpClient.GetAsync(URL).Result;
}
}

Интерфейс:
public interface IRecipeService
{
//Task getRecipeByID(int id);
Task getRecipeByID(int id);
}

Функция на странице Razor:
protected override async Task OnInitializedAsync()
{
recipe = await RecipeService.getRecipeByID(currentCount);
}

Program.cs (добавлена ​​следующая строка):
builder.Services.AddScoped();

ОБНОВЛЕННЫЙ КОД
Интерфейс
public class RecipeService : IRecipeService
{
private readonly string apiEndPoint = "GetRecipeByID/";

private readonly IHttpClientFactory httpClientFactory;
private HttpClient CreateHttpClient() => httpClientFactory.CreateClient("MainApi");

private readonly JsonSerializerOptions jsonOptions = new()
{
PropertyNameCaseInsensitive = true
};

public RecipeService(IHttpClientFactory httpClientFactory)
{
this.httpClientFactory = httpClientFactory;
}

public async TaskgetRecipeByID(int id)
{
string URL = apiEndPoint + id.ToString();

var response = await CreateHttpClient().GetAsync(URL, HttpCompletionOption.ResponseHeadersRead);
var result = await response.Content.ReadAsStreamAsync();

var recipe = await JsonSerializer.DeserializeAsync(result, jsonOptions);
return recipe;

}
}

public interface IRecipeService
{
Task getRecipeByID(int id);
}

Программа
builder.Services.AddHttpClient("MainApi", options =>
{
options.BaseAddress = new Uri(clConstants.SERVER_PATH);
});

builder.Services.AddSingleton();

СТРАНИЦА
@inject IRecipeService RecipeService

private List recipe { get; set; }

public interface IRecipeService
{
Task getRecipeByID(int id);
}


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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Вызов GetAsync в Blazor WebAssembly завершается с ошибкой
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Вызов GetAsync в Blazor WebAssembly завершается с ошибкой
    Anonymous » » в форуме C#
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Вызов GetAsync в Blazor WebAssembly завершается с ошибкой
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Вызов GetAsync в Blazor WebAssembly завершается с ошибкой
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Вызов GetAsync в Blazor WebAssembly завершается с ошибкой
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

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