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 build ಗಾಗಿ ಮಾತ್ರ.

ಪರಿಣಾಮಕಾರಿ ಮಾರ್ಗವನ್ನು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿಸಿ

ಸ್ಪಷ್ಟ ಪ್ರಾಕ್ಸಿ 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 ಸವಾಲನ್ನು ಗಮ್ಯದ ಸ್ಥಿತಿಯಿಂದ ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿ.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು