![](/img/trans.png)
[英]Overriding BadRequest response in ASP.NET Core ResourceFilter
[英]400 BadRequest response with .NET Core but not .NET Framework
我有鏈接http://www.swensens.com.vn/#huong-vi-tinh-yeu ,我需要通過請求驗證它是否仍在工作並獲取StatusCode。
這很簡單
var client = new HttpClient();
var result = await client.GetAsync(@"http://www.swensens.com.vn/#huong-vi-tinh-yeu");
Console.Write(result.StatusCode);
當我使用.NET Core 2.1進行測試時,它會獲得400 Bad Request。 我懷疑“#huong-vi-tinh-yeu”可能會導致問題,因為我收到200 OK而沒有它們。 但是,當我在.NET Framework中再次測試它時,完整鏈接完全可以獲得200 OK,沒有出現任何問題。
我還測試了使用第三個庫,例如.NET Core中的Flurl,RestSharp,但結果只有400個Bad Request。
網站上的另一個測試https://httpstatus.io仍然200 OK
我想保留.NET Core,因為我當前的Azure Function系統是通過.NET Core編寫的。
那么問題是什么?
這是一個已知的錯誤。 我前段時間在Github存儲庫上報告了這個bug: [2.1]在某些服務器上的HTTP 400中,帶有錨點的位置重定向失敗#34728
看來這個bug是在.NET Core 2.1中引入的,並在.NET Core 3中修復。
作為臨時解決方法,您可以在發出任何HTTP請求之前調用此方法,這將禁用錯誤代碼:
AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.