티스토리 뷰

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

libcurl을 사용한 https POST 메소드 예제

예제 코드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

 

 

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30