2

我已将我的 AppHost 配置为 JSON 作为默认内容类型。不幸的是,当 ServiceStack 无法将请求反序列化为相应的 DTO 时,它会以 application/xml 内容进行响应。这是一个示例响应(为简洁起见,我省略了大部分消息和堆栈跟踪元素值):

<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>

我猜响应是这样编码的,因为请求正在发送“应用程序/xml”内容。有没有办法强制(或挂钩)ServiceStack 使用默认内容类型?

更详细一点 - 我的服务不仅使用 JSON 作为默认内容类型,而且(尝试)通过全局请求过滤器确保 JSON 是唯一接受的内容类型,该过滤器在每次读取期间检查 Accept/Content-type 标头/write 并在内容类型不是“application/json”时使用 400 响应使请求短路。

4

0 回答 0