如何在ASP.NET Boilerplate中

时间:2017-09-15 07:21:07

标签: asp.net xamarin boilerplate

我们有一个xamarin移动应用程序请求并向Asp.net Boilerplate网络后端发送大量数据。

使用gzip压缩响应,我们也想压缩Post请求的内容。

为此,我们压缩post方法参数的json序列化如下:

byte[] jsonBytes = Encoding.UTF8.GetBytes(json);
MemoryStream ms = new MemoryStream();
using (GZipStream gzipStream = new GZipStream(ms, CompressionMode.Compress, true))
{
    gzipStream.Write(jsonBytes, 0, jsonBytes.Length);                   
}
ms.Position = 0;
StreamContent content = new StreamContent(ms);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
content.Headers.ContentEncoding.Add("gzip");

作为对Post的回应,我们收到错误500,其中Abp验证错误有内容。

我们如何配置或覆盖服务器以接受gzip内容?

我们已尝试使用一个模块在Context_BeginRequest中添加一个过滤器来解压缩内容,如果它是gzip有以下内容但没有结果。 (应用过滤器,但没有帮助)

string requestEncoding = ctx.Request.Headers["Content-encoding"];
if (requestEncoding != null && requestEncoding == "gzip")
{
    app.Request.Filter = 
         new System.IO.Compression.GZipStream(app.Request.Filter,
                                              CompressionMode.Decompress);
}

由于

0 个答案:

没有答案