যদি 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 ত্ৰুটি সামৰ্থন কৰক: এই উদাহৰণে সিহঁতক আগবঢ়োৱাৰ পৰিৱৰ্তে উত্থাপন কৰে।

সম্পৰ্কিত প্ৰবন্ধ