ప్రాక్సీ వెనుక Requests ప్రతిస్పందన వికృతంగా కనిపిస్తోందా? Brotli మద్దతును తనిఖీ చేయండి
కాపీ చేసిన Accept-Encoding:br హోస్ట్ చేసిన Requests వాతావరణం డీకోడర్ మద్దతును దాటవేయవచ్చు.
ల్యాప్టాప్ మరియు హోస్ట్ చేసిన ప్రక్రియను రెండు వేర్వేరు పొరల్లో పోల్చండి:
| పొర | ప్రశ్న |
|---|---|
| Content-Encoding | క్లయింట్ తిరిగి ఇచ్చిన gzip/deflate/Brotli బైట్లను డీకంప్రెస్ చేయగలదా? |
| Charset | డీకంప్రెస్ చేసిన బైట్లు ఎలా టెక్స్ట్ అవుతాయి? |
Requests సాధారణంగా gzip/deflate నిర్వహిస్తుంది; Brotli కోసం ఇన్స్టాల్ చేసిన మద్దతు ఉన్న లైబ్రరీ అవసరం. చేతితో కాపీ చేసిన Accept-Encoding br ప్రకటించవచ్చు, అయితే ఈ వాతావరణం దాన్ని డీకోడ్ చేయలేదు. UTF-8 టెక్స్ట్ ఎంపిక Brotliని డీకంప్రెస్ చేయదు.
ఉద్దేశపూర్వకంగా చర్చలను పరిమితం చేసినప్పుడు:
response = session.get(
url,
proxies={"https": "http://proxy.example:8080"},
headers={"Accept-Encoding": "gzip, deflate"},
timeout=30,
)
response.raise_for_status()ఇప్పటికే ఉన్న Session, HTTPS URL మరియు అవసరమైన హెడర్లు/ప్రామాణీకరణను ఉపయోగించండి. రెండు మెషీన్లలో బయటకు వెళ్లే Accept-Encoding, లోపలికి వచ్చే Content-Encoding మరియు ప్యాకేజీ మద్దతును పోల్చండి; మార్పు చేసే మధ్యవర్తి పాత మెటాడేటాను కూడా ఇవ్వవచ్చు. ప్రత్యేక పబ్లిక్ పేజీ పోలిక సార్వజనిక మధ్యవర్తులకు అనుమతి ఉన్న చోట దాని ప్రాక్సీ URL కోసం HTTP ప్రాక్సీ జాబితా ఉపయోగించవచ్చు, కానీ వారసత్వ ప్రాక్సీ ఆధారాలు, కాపీ చేసిన ఖాతా హెడర్లు లేదా ప్రైవేట్ బాడీ డేటా లేకుండా.
లేకపోతే సాధారణ క్లయింట్ చర్చలకు ప్రాధాన్యం ఇవ్వండి. Requests యొక్క సౌకర్యవంతమైన content/text ఇంటర్ఫేస్లు మద్దతు ఉన్న కోడింగ్ను డీకోడ్ చేస్తాయి, కాబట్టి హెడర్ దాని పేరు చెప్పిందనే కారణంతో మాత్రమే వాటి అవుట్పుట్ను మళ్లీ డీకంప్రెస్ చేయవద్దు.