【发布时间】:2021-08-27 03:54:32
【问题描述】:
我尝试使用全局过滤器压缩服务堆栈的响应,但它不起作用并抛出 500 错误代码。这是我的代码
this.GlobalResponseFilters.Add((req, response, requestDto) =>
{
response.AddHeader("Content-Encoding", "gzip");
MemoryStream stream = new MemoryStream();
IFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, requestDto);
var data = new GZipStream(stream, CompressionMode.Compress);
response.WriteToResponse(response, "application/json");
}
这里我也尝试了 [CompressResponse] 属性
Mvc控制器
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage 响应 = httpClient.GetAsync(url).Result;
ServiceStack.ServiceInterface
public interface ICommonDAL
{
Task<string> Getdefaultvalue(Getvalue request);
}
[压缩响应]
公共类 CommonDAL : DBConnection, ICommonDAL {
public async Task<string> Getdefaultvalue(Getvalue request)
{
return await WithConnection(async c =>
{
var p = new DynamicParameters();
p.Add("@pID", request.ID);
p.Add("@pMode", request.Mode);
var res= await c.QuerySingleAsync<string>("[dbo].[spdemo]", p, commandType: CommandType.StoredProcedure);
return res
});
}
}
【问题讨论】:
标签: gzip servicestack gzipstream json-api-response-converter