Programming/C
[libcurl] libcurl API 목록
Tribal
2019. 5. 9. 11:21
libcurl 다운로드 방법(Windows) : vcpkg 사용
API 목록
- curl_global_init
- libcurl 라이브러리 내부 환경 초기화
- 반환값 : CURLcode 타입의 오류 값
- 1번째 인자 : flags("CURL_GLOBAL_"으로 시작)
- curl_global_cleanup
- curl_global_init으로 생성된 자원 해제
- curl_free : curl 내부에서 할당한 메모리를 해제
Easy Interface
- curl_easy_init
- CURL 핸들 생성
- 반환 값 : CURL 핸들
- curl_easy_cleanup
- CURL 핸들 정리
- 1번째 인자 : CURL 핸들
- curl_easy_setopt
- CURLcode 타입의 오류 값
- 1번째 인자 : CURL 핸들
- 2번째 인자 : 설정한 옵션의 종류 ("CURLOPT_"으로 시작)
- n번째 인자 : 2번째 인자의 옵션에 대한 값
- curl_easy_perform
- 세팅된 옵션에 맞춰 작업 수행
- 반환값 : CURLcode 타입의 오류 값
- 1번째 인자 : CURL 핸들
- curl_easy_getinfo
- CURL 핸들로부터 정보를 가져옴
- 반환값 : CURLcode 타입의 오류 값
- 1번째 인자 : CURL 핸들
- 2번째 인자 : 가져올 정보의 종류("CURLINFO_"으로 시작)
- n번째 인자 : 2번째 인자의 정보에 대한 포인터(반드시 포인터여야 함)
- curl_easy_escape
- URL 인코딩
- 반환값 : 인코딩된 문자열
- 1번째 인자 : curl 핸들
- 2번째 인자 : url 문자열
- 3번째 인자 : url 문자열의 길이(0인 경우, strlen으로 알아서 계산)
- curl_easy_unescape
- URL 디코딩
- 반환값 : 디코딩된 문자열
- 1번째 인자 : curl 핸들
- 2번째 인자 : 인코딩된 url
- 3번째 인자 : 2번째 인자의 길이(0인 경우, strlen으로 알아서 계산)
- 4번째 인자 : 디코딩된 문자열의 길이
- ㅋㅋㅋ
Tip
- curl_easy_perform을 수행하면, contents가 화면에 그대로 출력되는데 curl_easy_setopt로 CURLOPT_WRITEFUNCTION과 CURLOPT_WRITEDATA를 추가해주면 contents를 buffer 등에 받는게 가능
예제 코드 : https://curl.haxx.se/libcurl/c/example.html
예제 코드2(파일 직접 업로드) : https://curl.haxx.se/libcurl/c/fileupload.html
예제 코드3(Request 헤더 추가) : https://curl.haxx.se/libcurl/c/httpcustomheader.html
예제 코드4(post 메소드 + form 데이터 추가) : https://curl.haxx.se/libcurl/c/postit2.html
참고 : https://curl.haxx.se/libcurl/c