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 (将#修改为@)