티스토리 뷰
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
'Programming > C' 카테고리의 다른 글
[VC++] 현재 Windows OS의 CPU 아키텍쳐 확인 (0) | 2019.11.14 |
---|---|
[WinSock] Windows Socket2 구조 (0) | 2019.09.18 |
[C++] Class 선언 및 초기화 (0) | 2019.02.26 |
[Compression] Compression 모음 (0) | 2019.02.19 |
[Windows WebServer] Windows web server application 제작 및 SSL 바인딩 (0) | 2019.02.12 |
댓글