[英]The controller request returns a status code of 401, I don't understand why, though I wrote down everything I needed
[英]Blazor GetAsync request returns 401 status code
我是 blazor 的新手,並嘗試使用 .NET Core /EF Core 3 和 Visual Studio 2019 創建應用程序。我已經設置了一個數據庫模型和一個 API,用於獲取所有地址 (/api/Address) 並在瀏覽器中瀏覽到此返回數據庫中的所有記錄。 但是我在 Razor 文件中的 My GetAsync 方法返回 401,最終返回 null。
這是我的剃刀代碼:
@functions
{
Address[] addresses;
protected override async Task OnInitializedAsync()
{
addresses = await Http.GetJsonAsync<Address[]>("api/Address");
}
}
這是我的 API
[Produces("application/json")]
[Route("api/[controller]")]
[ApiController]
public class AddressController : ControllerBase
{
private readonly MyDataContext _context;
// GET: api/Address
[HttpGet]
public async Task<ActionResult<IEnumerable<Address>>> GetAddresses()
{
return await _context.addressesDbSet.ToListAsync();
}
}
我得到的所有錯誤說
HttpRequestException: Response status code does not indicate success: 401 (Unauthorized).
沒有進一步說明,我無法理解原因,任何建議或建議將不勝感激。
我已經解決了這個問題,下面是我的解決方案,以防其他人遇到同樣的問題。
注入HttpClient
我在調用GetAsSync
之前將以下參數傳遞給HttpClient
:
var handler = new HttpClientHandler()
{
UseDefaultCredentials = false,
Credentials = System.Net.CredentialCache.DefaultCredentials,
AllowAutoRedirect = true
};
Http = new HttpClient(handler);
Http.BaseAddress = new Uri(/*YOUR BASE Uri*/);
Addresses = await Http.GetJsonAsync<Address[]>("api/Address");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.