在每個ServiceStack /metadata page列出了不同的方式,客戶端可以請求特定的內容類型:
要覆蓋內容類型在您的客戶端的HTTP 接受頭,附加格式= XML?或添加。 格式擴展名
例如, ?
接受::應用程序/ x-我的 - 客戶端可以與格式= X-MY-內容類型,加入延伸或通過指定HTTP報頭(在HttpClient的)指定的自定義的ContentType內容類型
否則,如果您的HttpClient不發送Accept頭,你可以在你的APPHOST與指定默認的內容類型:
SetConfig(new HostConfig {
DefaultContentType = "application/x-my-content-type"
});
注意:ServiceStack中的所有配置選項均設置爲HostConfig
。
從Web瀏覽器調用Web服務時的問題是,它們通常會要求Accept: text/html
,如果ServiceStack已啓用,則通過合約ServiceStack返回HTML來承擔責任。
爲了確保您的內容類型,總是返回您可能還需要禁用與HTML功能:
SetConfig(new HostConfig {
EnableFeatures = Feature.All.Remove(Feature.Html),
});
否則,如果你想重寫接受頭,你可以強迫你的服務總是返回您的ContentType通過裝飾你的反應DTO一個HttpResult內,即:
return new HttpResult(dto, "application/x-my-content-type");
否則外面您的服務(如請求/響應濾波器),你可以在任何地方設置響應的ContentType塔的任何地方t有權訪問IHttpRequest
:
httpReq.ResponseContentType = "application/x-my-content-type";