我已将AppHost配置为JSON作为默认内容类型。不幸的是,在ServiceStack无法将请求反序列化到相应的DTO中的情况下,它会响应application / xml内容。这是一个示例响应(为简洁起见,我省略了大部分消息和stacktrace元素值):
<UpsertResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="">
<ResponseStatus>
<ErrorCode>SerializationException</ErrorCode>
<Message>Could not deserialize 'application/xml' request using ...</Message>
<StackTrace>at ServiceStack.WebHost.Endpoints.Support.EndpointHandlerBase.CreateContentTypeRequest(IHttpRequest httpReq, Type requestType, String contentType)...</StackTrace>
</ResponseStatus>
</UpsertResponse>
我想响应是以这种方式编码的,因为请求正在发送'application / xml'内容。有没有办法强制(或挂钩)ServiceStack使用默认内容类型?
更多的conext - 我的服务不仅使用JSON作为默认内容类型,而且(尝试)通过全局请求过滤器确保JSON是唯一接受的内容类型,该过滤器检查Accept / Content-type标头在每次读/写期间,当内容类型不是'application / json'时,请求以400响应短路。