libcurl proxy உள்ளமைவை 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 அதைக் குறிப்பிடும் வரை பிழை buffer-ஐ உயிர்ப்புடன் வைத்திருங்கள். அதன் எல்லையை விட்டு வெளியேறும் முன் handle-ஐ சுத்தம் செய்யவும் அல்லது அதன் CURLOPT_ERRORBUFFER சுட்டியை மாற்றவும் அல்லது அழிக்கவும். proxy hostname ஒரு இடம்காட்டி; HTTP proxy பட்டியலில் இருந்து அங்கீகரிக்கப்படாத வேட்பாளர் இந்தப் பொதுத் தளச் சோதனைக்கான முகவரியை வழங்கலாம். அதன் உண்மையான scheme மற்றும் port-ஐப் பயன்படுத்தி, HTTPS சுரங்கப்பாதையை அனுமதிக்கிறதா எனச் சரிபார்க்கவும்.

HTTPS இலக்கு HTTP proxy-ஐப் பயன்படுத்தலாம். அந்த HTTPS transfer-க்கான சுரங்கப்பாதையை libcurl கையாள்கிறது. proxy option-ல் உள்ள http:// இடைத்தரகருடனான இணைப்பை விவரிக்கிறது. TLS-ஐ உண்மையில் ஏற்கும் proxy endpoint-க்கும் அதை ஆதரிக்கும் libcurl build-க்கும் மட்டுமே அதை https:// ஆக மாற்றவும்.

பயனுள்ள பாதையை வேண்டுமென்றே ஆக்குங்கள்

வெளிப்படையான proxy option தொடர்புடைய proxy சூழல் அமைப்பை மீறுகிறது. தவிர்த்தல் ஒரு தனி முடிவு: மரபுவழியாகப் பெற்ற no_proxy இன்னும் இலக்கை விலக்கலாம். இந்த handle-க்கு வழங்கப்படும் ஒவ்வொரு இலக்கிற்கும் தேர்ந்தெடுத்த proxy-ஐப் பயன்படுத்த வேண்டும் என்றால், அந்தக் கொள்கையின் பகுதியாக CURLOPT_NOPROXY-ஐ காலி சரமாக உள்ளமைக்கவும்.

மாறாக, CURLOPT_PROXY-ஐ காலி சரமாக அமைப்பது proxy பயன்பாட்டை வெளிப்படையாக முடக்குகிறது. அதை NULL ஆக அமைப்பது வெளிப்படையான ஒதுக்கீட்டை நீக்கி சூழல் அடிப்படையிலான நடத்தையை மீண்டும் அனுமதிக்கிறது. அந்த இரண்டு மதிப்புகளும் வெவ்வேறு நோக்கங்களுக்கு உதவுகின்றன.

Content-Type: text/xml போன்ற இலக்கு-குறிப்பிட்ட header proxy-ஐத் தேர்ந்தெடுக்காது. உண்மையான கோரிக்கை body-க்கும் இலக்கு API-க்கும் அந்த ஊடக வகை தேவைப்படும்போது மட்டுமே அதைச் சேர்க்கவும்.

HTTP முடிவையும் படியுங்கள்

வெற்றிகரமான curl_easy_perform என்பது இணையதளம் வெற்றிகரமான HTTP நிலையைத் திருப்பியது என்று பொருள் அல்ல. CURLINFO_RESPONSE_CODE-ஐப் படித்து பயன்பாட்டின் நிலை கையாளுதலைப் பயன்படுத்தவும். proxy-யின் CONNECT பதிலுக்கு அதன் சொந்த மதிப்பு உண்டு, CURLINFO_HTTP_CONNECTCODE; சுரங்கப்பாதை நிராகரிப்பு எந்த இணையதள பதிலுக்கும் முன்பே நிகழ்கிறது.

CURLOPT_FAILONERROR பல HTTP பிழைகளைத் தோல்விகளாகக் கருதலாம், ஆனால் அதன் ஆவணம் அங்கீகார விதிவிலக்குகளைக் குறிப்பிடுகிறது. proxy-யின் 407 சவாலை இலக்கின் நிலையிலிருந்து தனியாக வைத்திருங்கள்.

தொடர்புடைய கட்டுரைகள்