Der GetAsync-Aufruf in Blazor WebAssembly schlägt fehl
Posted: 27 Dec 2024, 09:54
Ich glaube, dass hier etwas passiert, das ich nicht verstehe, da Blazor aus der Windows Forms-Entwicklung stammt. Ich versuche, Daten von einer API abzurufen, von der ich weiß, dass sie funktioniert und Daten korrekt an eine andere Anwendung übermittelt. Mir scheint, dass der Code beendet wird, bevor der asynchrone Aufruf beendet werden kann.
Es ist in der Zeile httpClient.GetAsync abgestürzt. Zu Testzwecken wird dieser Aufruf ausgeführt, wenn die Seite mit der OnInitializedAsync-Funktion geladen wird.
Ich habe zwei verschiedene Tutorials befolgt, aber beide liefern das gleiche Ergebnis von .GetAsync Aufruf schlägt fehl: https://code-maze.com/blazor-webassembly-httpclient/ und
Bitte Hilfe.
Danke!
Serviceklasse:
Schnittstelle:
Funktion auf der Razor-Seite:
(fügte die folgende Zeile hinzu):
Es ist in der Zeile httpClient.GetAsync abgestürzt. Zu Testzwecken wird dieser Aufruf ausgeführt, wenn die Seite mit der OnInitializedAsync-Funktion geladen wird.
Ich habe zwei verschiedene Tutorials befolgt, aber beide liefern das gleiche Ergebnis von .GetAsync Aufruf schlägt fehl: https://code-maze.com/blazor-webassembly-httpclient/ und
Bitte Hilfe.
Danke!
Serviceklasse:
Code: Select all
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;
}
}
Code: Select all
public interface IRecipeService
{
//Task getRecipeByID(int id);
Task getRecipeByID(int id);
}
Code: Select all
protected override async Task OnInitializedAsync()
{
recipe = await RecipeService.getRecipeByID(currentCount);
}
Code: Select all
Program.cs
Code: Select all
builder.Services.AddScoped();