libcurl ప్రాక్సీ కాన్ఫిగరేషన్ను transfer చేసే easy handleకి జోడిస్తుంది. మధ్యవర్తి చిరునామాను ఆ handleపై సెట్ చేయండి, CURLOPT_URL గమ్య URLగానే ఉండనివ్వండి.

కింది భాగం libcurl ప్రారంభమైందని మరియు handle చెల్లుబాటు అయ్యే easy handle అని ఊహిస్తుంది:

char error[CURL_ERROR_SIZE] = {0};
CURLcode result;

result = curl_easy_setopt(handle, CURLOPT_ERRORBUFFER, error);
if (result == CURLE_OK)
    result = curl_easy_setopt(handle, CURLOPT_URL,
                              "https://example.com/");
if (result == CURLE_OK)
    result = curl_easy_setopt(handle, CURLOPT_PROXY,
                              "http://proxy.example:8080");
if (result == CURLE_OK)
    result = curl_easy_perform(handle);

if (result != CURLE_OK)
    fprintf(stderr, "%s\n", error[0] ? error
                                  : curl_easy_strerror(result));

handle దానిని సూచించినంత కాలం లోపాల బఫర్ను సజీవంగా ఉంచండి. దాని పరిధిని విడిచిపెట్టే ముందు handleను శుభ్రం చేయండి లేదా దాని CURLOPT_ERRORBUFFER పాయింటర్ను భర్తీ చేయండి లేదా తొలగించండి. ప్రాక్సీ హోస్ట్నేమ్ ప్లేస్హోల్డర్; HTTP ప్రాక్సీ జాబితా నుండి ధృవీకరించని అభ్యర్థి ఈ పబ్లిక్ సైట్ పరీక్షకు చిరునామాను అందించగలదు. దాని వాస్తవ స్కీమ్ మరియు పోర్ట్ను ఉపయోగించి, HTTPS సొరంగాన్ని అనుమతిస్తుందో లేదో తనిఖీ చేయండి.

HTTPS గమ్యం HTTP ప్రాక్సీని ఉపయోగించగలదు. ఆ HTTPS transfer కోసం libcurl సొరంగాన్ని నిర్వహిస్తుంది. ప్రాక్సీ optionలోని http:// మధ్యవర్తితో కనెక్షన్ను వివరిస్తుంది. TLSను నిజంగా అంగీకరించే ప్రాక్సీ ఎండ్పాయింట్ మరియు దానిని మద్దతిచ్చే libcurl build కోసం మాత్రమే దాన్ని https://కి మార్చండి.

ప్రభావవంతమైన మార్గాన్ని ఉద్దేశపూర్వకంగా చేయండి

స్పష్టమైన ప్రాక్సీ option సంబంధిత ప్రాక్సీ వాతావరణ సెట్టింగ్ను భర్తీ చేస్తుంది. బైపాస్ ప్రత్యేక నిర్ణయం: వారసత్వంగా వచ్చిన no_proxy ఇప్పటికీ గమ్యాన్ని మినహాయించగలదు. ఈ handleకి ఇచ్చిన ప్రతి గమ్యానికి ఎంచుకున్న ప్రాక్సీని ఉపయోగించాల్సి ఉంటే, ఆ విధానంలో భాగంగా CURLOPT_NOPROXYను ఖాళీ స్ట్రింగ్గా కాన్ఫిగర్ చేయండి.

దీనికి విరుద్ధంగా, CURLOPT_PROXYను ఖాళీ స్ట్రింగ్కు సెట్ చేయడం ప్రాక్సీ వినియోగాన్ని స్పష్టంగా నిలిపివేస్తుంది. దాన్ని NULLకి సెట్ చేయడం స్పష్ట కేటాయింపును తొలగించి పర్యావరణ ఆధారిత ప్రవర్తనను మళ్లీ అనుమతిస్తుంది. ఆ రెండు విలువలు వేర్వేరు లక్ష్యాలకు సేవ చేస్తాయి.

Content-Type: text/xml వంటి లక్ష్య-నిర్దిష్ట హెడర్ ప్రాక్సీని ఎంచుకోదు. వాస్తవ అభ్యర్థన బాడీ మరియు గమ్య APIకి ఆ మీడియా రకం అవసరమైనప్పుడు మాత్రమే దాన్ని జోడించండి.

HTTP ఫలితాన్ని కూడా చదవండి

విజయవంతమైన curl_easy_perform అంటే వెబ్సైట్ విజయవంతమైన HTTP స్థితిని తిరిగి ఇచ్చిందని కాదు. CURLINFO_RESPONSE_CODEను చదివి అప్లికేషన్ స్థితి నిర్వహణను వర్తించండి. ప్రాక్సీ CONNECT ప్రతిస్పందనకు దాని స్వంత విలువ ఉంది, CURLINFO_HTTP_CONNECTCODE; సొరంగ నిరాకరణ ఏదైనా వెబ్సైట్ ప్రతిస్పందనకు ముందు వస్తుంది.

CURLOPT_FAILONERROR అనేక HTTP లోపాలను వైఫల్యాలుగా పరిగణించగలదు, కానీ దాని డాక్యుమెంటేషన్ ప్రామాణీకరణ మినహాయింపులను పేర్కొంటుంది. ప్రాక్సీ 407 సవాలును గమ్య స్థితి నుండి వేరుగా ఉంచండి.

సంబంధిత వ్యాసాలు