ଯଦି Requests ପୂର୍ବରୁ ଏକ ବଡି ଡିକମ୍ପ୍ରେସ୍ କରିଛି, Content-Encoding: gzip ସହିତ ଏହାକୁ ଆଗକୁ ପଠାଇବା ପରବର୍ତ୍ତୀ କ୍ଲାଏଣ୍ଟକୁ ଏହାକୁ ପୁନର୍ବାର ଡିକମ୍ପ୍ରେସ୍ କରିବାକୁ କହେ। ହେଡର କପି କରିବା ପୂର୍ବରୁ ପ୍ରକ୍ସି କେଉଁ ପେଲୋଡ୍ ପ୍ରତିନିଧିତ୍ୱ ପଠାଏ ତାହା ନିର୍ଣ୍ଣୟ କରନ୍ତୁ।

ପଠାଯାଇଥିବା ପେଲୋଡ୍content ହେଡର
ମୂଳ ଏନକୋଡେଡ୍ ବାଇଟ୍ପ୍ରଯୁଜ୍ୟ କୋଡିଂ ଏବଂ ସଠିକ୍ ପେଲୋଡ୍ ଲମ୍ବା ରଖନ୍ତୁ
ଡିକୋଡେଡ୍ ବାଇଟ୍ଡିକୋଡେଡ୍ କୋଡିଂ ଅପସାରଣ କରନ୍ତୁ; ସମ୍ପୃକ୍ତ ଲମ୍ବା ଅପସାରଣ କରନ୍ତୁ କିମ୍ବା ପୁନଃ ଗଣନା କରନ୍ତୁ

ଏନକୋଡେଡ୍ ପେଲୋଡ୍ ବାଇଟ୍ ପାଇଁ, ଏହି ଅଂଶ urllib3 ର କଞ୍ଚା ଷ୍ଟ୍ରିମ୍ content ଡିକୋଡିଂ ବିନା ପଢ଼େ:

with requests.get(url, stream=True, timeout=(5, 30)) as upstream:
    upstream.raise_for_status()
    for block in upstream.raw.stream(65536, decode_content=False):
        downstream.write(block)

downstream ବିଦ୍ୟମାନ ପ୍ରତିକ୍ରିୟା ଆଉଟପୁଟ୍। ଏହାର ସ୍ଥିତି ଏବଂ ହେଡର ପୂର୍ବରୁ ବଛାଯାଇଥିବା ନୀତି ଅନୁସରଣ କରିବା ଉଚିତ; ଏହି ଅଂଶ ସମ୍ପୂର୍ଣ୍ଣ ପ୍ରକ୍ସି ସର୍ଭର କାର୍ଯ୍ୟକାରୀ କରେ ନାହିଁ।

ଟ୍ରାନ୍ସଫର ଫ୍ରେମିଂ gzip content କୋଡିଂଠାରୁ ଅଲଗା। ଅପଷ୍ଟ୍ରିମ୍ HTTP ଲାଇବ୍ରେରୀ ଚଙ୍କ ଅପସାରଣ ସହିତ ଫ୍ରେମିଂ ପୂର୍ବରୁ ସମ୍ଭାଳିଛି, ତେଣୁ Transfer-Encoding କୁ ଆଖି ବନ୍ଦ କରି କପି କରନ୍ତୁ ନାହିଁ। ପେଲୋଡ୍ gzip-ଏନକୋଡେଡ୍ ରହିଲେ ମଧ୍ୟ ଡାଉନଷ୍ଟ୍ରିମ୍ ସର୍ଭର ନିଜ ପ୍ରତିକ୍ରିୟାକୁ ଫ୍ରେମ୍ କରେ।

response.text ପରେ UTF-8 ଏନକୋଡିଂ ମଧ୍ୟ ପ୍ରତିନିଧିତ୍ୱ ବଦଳାଏ ଏବଂ ଇଚ୍ଛାଧୀନ ବାଇନାରୀ ଡାଟା ସଂରକ୍ଷଣ କରିପାରେ ନାହିଁ। ପ୍ରତ୍ୟେକ ପଥରେ ଅପଷ୍ଟ୍ରିମ୍ ପ୍ରତିକ୍ରିୟା ବନ୍ଦ କରନ୍ତୁ କିମ୍ବା ବ୍ୟବହାର କରନ୍ତୁ, ଏବଂ ପ୍ରକ୍ସି ଚୁକ୍ତି ଅନୁସାରେ HTTP ତ୍ରୁଟି ସମ୍ଭାଳନ୍ତୁ: ଏହି ଉଦାହରଣ ସେଗୁଡ଼ିକୁ ଆଗକୁ ପଠାଇବା ପରିବର୍ତ୍ତେ ଫିଙ୍ଗେ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ