HttpClient响应返回加扰的数据

我正在尝试使用HttpClient从此URL获取正确的JSON响应。当我在Chrome中查看网址时,数据格式正确为JSON。当我使用HttpClient时,会得到一堆看起来像字节之类的垃圾数据。我不知道如何将其解码为字符串。请告知。

string url = "https://api.nasdaq.com/api/calendar/earnings?date=2010-07-30";

string calendar = await DownloadFile(new string[] { url });

private static readonly HttpClient httpClient = new HttpClient();

        public static async Task<string> DownloadFile(string[] args)
        {
            string url = args[0];

            httpClient.DefaultRequestHeaders.acceptEncoding.ParseAdd("gzip,deflate,br");
            httpClient.DefaultRequestHeaders.Connection.ParseAdd("keep-alive");

            string text = await httpClient.GetStringAsync(url);
            
            return text;

        }
iCMS 回答:HttpClient响应返回加扰的数据

数据重新以gzip压缩。您可以在实例化HttpClient时启用此属性,以使HttpClient自动解压缩此数据:

    private static readonly HttpClient httpClient = new HttpClient(new HttpClientHandler
    {
        AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate
    });
,

我认为您必须从请求标头中删除Brotli压缩。 .Net不能对Brotli(br)进行开箱即用的解码。

即更改:

httpClient.DefaultRequestHeaders.AcceptEncoding.ParseAdd("gzip,deflate,br");

httpClient.DefaultRequestHeaders.AcceptEncoding.ParseAdd("gzip,deflate");
本文链接:https://www.f2er.com/1816474.html

大家都在问