如何解决IErrorHandler中响应中的内容类型错误
我想以JSON格式发送对服务的响应。我在自定义行为中发现了自定义错误:
void IErrorHandler.ProvideFault(Exception error,MessageVersion version,ref Message fault)
{
XDocument errorMsg = XDocument.Parse("<errorMessage>" + error.Message + "</errorMessage>");
var jsonWriter = new JsonErrorBodyWriter(errorMsg);
fault = Message.CreateMessage(version,null,jsonWriter);
fault.Properties.Add(WebBodyFormatMessageProperty.Name,new WebBodyFormatMessageProperty(WebContentFormat.Json));
HttpResponseMessageProperty prop = new HttpResponseMessageProperty();
prop.StatusCode = HttpStatusCode.Unauthorized;
prop.Headers.Add("Content-Type","application/json; charset=utf-8");
prop.Headers[HttpRequestHeader.ContentType] = "application/json; charset=utf-8";
--Tried different ways to achieve this
fault.Properties.Add(HttpResponseMessageProperty.Name,prop);
}
但是我得到错误的内容类型响应。而且我也无法编写任何自定义标头,例如:
prop.Headers.Add("Test","Value");
回复:
HTTP/1.1 401 Unauthorized
Content-Type: application/xml; charset=utf-8
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Wed,30 Sep 2020 08:41:15 GMT
Content-Length: 37
{"description":"Autorization Failed"}
我的代码有什么问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。