【发布时间】:2019-07-15 11:27:34
【问题描述】:
我有一个 Web Api,它向我发送使用 brotli 压缩的响应,我有一个控制台应用程序,它通过向我的 WebApi 请求数据来使用 HttpClient。我需要解压缩我的 WebApi 发送的数据。
对于 .Net Core 2.2
Startup.cs
//Compresión de 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。 . .
【问题讨论】:
-
看看这里:stackoverflow.com/a/27327208/4035472 同样适用于 brotli。
-
我需要brotli解压
-
Brotli 可从 .net core 3.0+ 获得,请参阅 docs.microsoft.com/en-us/dotnet/api/…
-
我使用.Net Core 2.2
-
好吧,要么升级你的项目,自己实现 brotli 解压,要么如果你不接受就不要发送
Accept-Encoding: br标头。
标签: c# .net-core dotnet-httpclient