当 HTTP 状态为“错误请求”时,HttpResponseMessage 内容丢失
本文关键字:HttpResponseMessage 错误请求 状态 HTTP 请求 错误 | 更新日期: 2023-09-27 18:33:12
var response = new HttpResponseMessage(HttpStatusCode.BadRequest)
{
Content = new StringContent("Error in Validation"),
ReasonPhrase = "Error in Validation"
};
throw new HttpResponseException(response);
上面的代码没有返回"验证错误"作为响应内容,而是返回"错误请求"。
string result = response.Content.ReadAsStringAsync().Result;
我可以从 ReasonPhrase 中读取它,但有些客户希望在响应正文中显示错误消息。如果 HTTP 状态设置为"正常",则它将返回正确的消息。
您可以考虑从 System.Net.Http 命名空间使用 HttpRequestMessageExtensions.CreateErrorReponse。
这里有一个类似问题的讨论。
能够
修复它,以防有人遇到同样的问题。我有共存的网站和API,问题是由于自定义错误页面转发。
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404"/>
<error statusCode="404" responseMode="ExecuteURL" path="/Error/PageNotFound" />
</httpErrors>
我必须将以下部分添加到 Web.config 中以解决问题。
<location path="api">
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough" >
<clear/>
</httpErrors>
</system.webServer>