by Guest » 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:
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;
}
}
Schnittstelle:
Code: Select all
public interface IRecipeService
{
//Task getRecipeByID(int id);
Task getRecipeByID(int id);
}
Funktion auf der Razor-Seite:
Code: Select all
protected override async Task OnInitializedAsync()
{
recipe = await RecipeService.getRecipeByID(currentCount);
}
(fügte die folgende Zeile hinzu):
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 [youtube]ffrGQwICEIY[/youtube]
Bitte Hilfe.
Danke!
Serviceklasse:
[code]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]
Schnittstelle:
[code]public interface IRecipeService
{
//Task getRecipeByID(int id);
Task getRecipeByID(int id);
}
[/code]
Funktion auf der Razor-Seite:
[code]protected override async Task OnInitializedAsync()
{
recipe = await RecipeService.getRecipeByID(currentCount);
}
[/code]
[code]Program.cs[/code] (fügte die folgende Zeile hinzu):
[code]builder.Services.AddScoped();
[/code]