Fix gzip decompression with HTTP::Client

This commit is contained in:
syeopite 2021-09-28 14:57:48 -07:00
parent d379a36c0e
commit b0f127d4d8
No known key found for this signature in database
GPG Key ID: 6FA616E5A5294A82

View File

@ -404,10 +404,17 @@ module YoutubeAPI
url = "#{endpoint}?key=#{client_config.api_key}" url = "#{endpoint}?key=#{client_config.api_key}"
headers = HTTP::Headers{ headers = HTTP::Headers{
"Content-Type" => "application/json; charset=UTF-8", "Content-Type" => "application/json; charset=UTF-8",
"Accept-Encoding" => "gzip",
} }
# The normal HTTP client automatically applies accept-encoding: gzip,
# and decompresses. However, explicitly applying it will remove this functionality.
#
# https://github.com/crystal-lang/crystal/issues/11252#issuecomment-929594741
{% unless flag?(:disable_quic) %}
headers["Accept-Encoding"] = "gzip"
{% end %}
# Logging # Logging
LOGGER.debug("YoutubeAPI: Using endpoint: \"#{endpoint}\"") LOGGER.debug("YoutubeAPI: Using endpoint: \"#{endpoint}\"")
LOGGER.trace("YoutubeAPI: ClientConfig: #{client_config}") LOGGER.trace("YoutubeAPI: ClientConfig: #{client_config}")