libcurl easy handle પર સ્પષ્ટ પ્રોક્સી મૂકવી
ચોક્કસ પ્રોક્સી માટે libcurl easy handle રૂપરેખાંકિત કરો અને option ભૂલો, transfer નિષ્ફળતાઓ અને HTTP સ્થિતિને અલગ કરો.
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 પ્રોક્સી વાપરી શકે છે. libcurl તે HTTPS transfer માટે ટનલ સંભાળે છે. પ્રોક્સી option માંનું http:// મધ્યસ્થી સાથેના જોડાણનું વર્ણન કરે છે. તેને https:// માં બદલો ફક્ત એવા પ્રોક્સી એન્ડપોઇન્ટ માટે જે ખરેખર TLS સ્વીકારે છે અને એવા libcurl બિલ્ડ માટે જે તેને સમર્થન આપે છે.
અસરકારક માર્ગને જાણી જોઈને બનાવો
સ્પષ્ટ પ્રોક્સી 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 પડકારને ગંતવ્યની સ્થિતિથી અલગ રાખો.