2

デフォルトのコンテンツ タイプとして JSON を使用して AppHost を構成しました。残念ながら、ServiceStack がリクエストを対応する DTO にデシリアライズできなかった場合、アプリケーション/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>

リクエストが「application/xml」コンテンツを送信していたため、レスポンスはそのようにエンコードされていると思います。ServiceStack に既定のコンテンツ タイプを使用させる (またはフックする) 方法はありますか?

もう少し関連性 - 私のサービスは JSON をデフォルトのコンテンツ タイプとして使用するだけでなく、JSON がグローバル リクエスト フィルタを介して唯一の受け入れられるコンテンツ タイプであることを保証します。これは、各読み取り中に Accept/Content-type ヘッダーをチェックします。 /write は、コンテンツ タイプが「application/json」でない場合に 400 レスポンスでリクエストをショートサーキットします。

4

0 に答える 0