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 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 ଚ୍ୟାଲେଞ୍ଜକୁ ଲକ୍ଷ୍ୟର ସ୍ଥିତିରୁ ଅଲଗା ରଖନ୍ତୁ।