샘플 코드:
#include <curl/curl.h> #include <iostream> int main() { CURL *curl; CURLcode res; curl_global_init (CURL_GLOBAL_DEFAULT); curl =curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "/"); curl_easy_setopt(curl, CURLOPT_PROXY, ""); cur_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); 컬_easy_setopt(컬, CURLOPT_WRITEFUNCTION, NULL); // 사용 가능한 도구는 curl_easy_setopt(curl, CURLOPT_ERRORFUNCTION, NULL); // 사용 가능한 默认错误处理函数 res =curl_easy_perform(curl); if (res != CURLE_OK) std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl; curl_easy_cleanup (컬); } curl_global_cleanup (); return 0; }
설명하다:
-
#include <curl/curl.h>
: libcurl의 모든 함수 선언이 포함된 libcurl 라이브러리의 헤더 파일입니다. -
#include <iostream>
: iostream 클래스를 포함한 C++ 표준 입출력 라이브러리의 헤더 파일입니다. -
curl_global_init(CURL_GLOBAL_DEFAULT)
: libcurl 전역 변수를 초기화하는 함수로, CURL_GLOBAL_DEFAULT는 기본 설정을 사용한다는 의미입니다. -
curl = curl_easy_init()
: CURL 객체를 생성하고 CURL 포인터를 반환하는 함수입니다. -
curl_easy_setopt(curl, CURLOPT_URL, "https://www.ctrip.com/");
: CURL 객체의 URL을 설정하는 함수로, 매개변수는 URL 문자열이다. -
curl_easy_setopt(curl, CURLOPT_PROXY, "www.duoip.cn:8000");
: CURL 객체의 서버를 설정하는 함수로, 파라미터는 서버의 IP 주소와 포트번호이다. -
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
: CURL 객체가 리다이렉션을 따르는지 여부를 설정하는 함수로, 매개변수는 정수이며, 1은 리다이렉션을 따르는 것을 의미하고, 0은 리다이렉션을 따르지 않는다는 것을 의미한다. -
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, NULL);
: CURL 객체의 쓰기 기능을 설정하는 함수로, 매개변수는 함수 포인터이며, 요청 성공 후 이 함수가 호출되어 요청 결과를 씁니다. -
curl_easy_setopt(curl, CURLOPT_ERRORFUNCTION, NULL);
: CURL 객체의 오류 처리 기능을 설정하는 함수로, 매개변수는 함수 포인터로, 요청이 오류 처리에 실패하면 이 함수가 호출된다. -
curl_easy_perform(curl);
: CURL 객체에 대한 요청을 수행하는 함수로, 요청이 성공하면 CURLE_OK를 반환하고, 요청이 실패하면 에러 코드를 반환한다. -
if(res != CURLE_OK)
: 조건문입니다.curl_easy_perform() 함수에서 반환된 오류 코드가 CURLE_OK와 같지 않으면 다음 명령문이 실행됩니다. -
std::cerr << "curl_easy_perform() failed: " << curl_easy_strerror(res) << std::endl;
: 오류 정보를 출력하는 함수로, cur_easy_perform() 함수에서 반환된 오류 코드가 CURLE_OK와 같지 않으면 이 함수를 실행하여 오류 정보를 출력한다. -
curl_easy_cleanup(curl);
: CURL 객체를 소멸시키고 CURL 객체가 점유하고 있던 리소스를 해제하는 함수입니다. -
curl_global_cleanup();
: libcurl 전역 변수를 소멸시키고 libcurl이 점유하고 있는 리소스를 해제하는 함수입니다. -
return 0;
: 메인 함수의 반환 값으로, 프로그램이 정상적으로 종료되었음을 나타냅니다.