在HttpClient中解压缩Brotli HttpResponse

问题描述 投票:0回答:2

我有一个Web Api,向我发送的响应使用brotli压缩,并且我有一个控制台应用程序,它通过向我的WebApi请求数据来使用HttpClient。我需要解压缩WebApi发送的数据。

对于.Net Core 2.2]

Startup.cs

//Compresiónde respuestas del servidor

services.Configure<BrotliCompressionProviderOptions>(opciones =>
                opciones.Level = CompressionLevel.Optimal
);

services.AddResponseCompression(opciones =>
{
    opciones.EnableForHttps = true;
    opciones.Providers.Add<BrotliCompressionProvider>();
});

ConseleApp

using (var client = new HttpClient(handler)){
    client.BaseAddress = new Uri(BASE_URL);
    client.Timeout = new TimeSpan(0, 0, TIMEOUT_SECONDS);
    HttpRequestHeaders headers = client.DefaultRequestHeaders;
    headers.Add("X-User", Environment.UserName);
    headers.Add("Accept-Encoding", "br"); //gzip
    HttpResponseMessage response = null;

    response = await client.GetAsync($"{requestUrl}");
    if (response.IsSuccessStatusCode)
    {
        string strResult = await response.Content.ReadAsStringAsync();
        return JsonConvert.DeserializeObject<T>(strResult);
    }
}

strResult不是JSON。 。 。

我有一个Web Api,向我发送的响应使用brotli压缩,并且我有一个控制台应用程序,它通过向我的WebApi请求数据来使用HttpClient。我需要解压缩WebApi发送的数据。对于....

c# .net-core dotnet-httpclient
2个回答
0
投票

您是否尝试过.Net库之一,例如:


0
投票

假设您使用的是.NET Core 2.1中包含的HttpClientFactory,那么您可以创建一个委托处理程序,该处理程序将在将完整的有效内容交给您的代码之前对其进行拦截和解压缩。

© www.soinside.com 2019 - 2024. All rights reserved.