libcurl, transfer කරන easy handle එකට proxy වින්‍යාසය සම්බන්ධ කරයි. අතරමැදියාගේ ලිපිනය එම 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:// අතරමැදියා සමඟ සම්බන්ධතාවය විස්තර කරයි. එය https:// ලෙස වෙනස් කරන්න TLS සැබවින්ම පිළිගන්නා proxy endpoint එකකට සහ එයට සහාය දෙන libcurl build එකකට පමණි.

ඵලදායී මාර්ගය හිතාමතා කරන්න

පැහැදිලි proxy option එකක් අදාළ proxy පරිසර සැකසුම අභිබවා යයි. මඟ හැරීම වෙනම තීරණයකි: උරුම වූ no_proxy තවමත් ගමනාන්තය බැහැර කළ හැක. මෙම handle එකට ලබා දෙන සෑම ගමනාන්තයක් සඳහාම තෝරාගත් proxy එක භාවිතා කළ යුතු නම්, එම ප්‍රතිපත්තියේ කොටසක් ලෙස CURLOPT_NOPROXY හිස් string එකක් ලෙස වින්‍යාස කරන්න.

ඊට පටහැනිව, CURLOPT_PROXY හිස් string එකකට සැකසීම 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 අභියෝගය ගමනාන්තයේ තත්ත්වයෙන් වෙන් කර තබන්න.

අදාළ ලිපි