requests: disable auto decoding

后端 未结 2 1058
借酒劲吻你
借酒劲吻你 2020-12-11 05:39

Can you disable the auto decoding feature in requests version 1.2.3?

I\'ve looked through the documentation and couldn\'t find anything, I\'m currently

相关标签:
2条回答
  • 2020-12-11 06:09
    import requests
    
    r = requests.get(url, stream=True)
    with open(local_filename, 'wb') as f:
        for chunk in r.raw.stream(1024, decode_content=False):
            if chunk:
                f.write(chunk)
    

    This way, you will avoid automatic decompress of gzip-encoded response, and still write it to file chunk by chunk (useful for getting big files)

    0 讨论(0)
  • 2020-12-11 06:11

    You can access the raw response like this:

    resp = requests.get(url, stream=True)
    resp.raw.read()
    

    In order to use raw you need to set stream=True for the original request. Also, raw is a file-like object, and reading from response.content will affect the seek cursor. In other words: If you already (tried to) read response.content, response.raw.read() will return an empty string.

    See FAQ: Encoded Data and Quickstart: raw response content in the requests documentation.

    0 讨论(0)
提交回复
热议问题