본문 바로가기

MS/C++

curl - setopt 종류

http_send_message(char *msg_out, char **msg_in)
{
    CURLcode res;
    CURL *curl;

    curl = curl_easy_init();
    if (!curl) return -1;

    curl_easy_setopt(curl, CURLOPT_URL, "http://192.168.1.133:8080/tawtaw");
    curl_easy_setopt(curl, CURLOPT_USERNAME, "tawtaw");
    curl_easy_setopt(curl, CURLOPT_PASSWORD, "tawtaw");
    curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC|CURLAUTH_DIGEST);
        .
        .
        .
   curl_easy_cleanup(curl); 
}

출처 : http://blog.naver.com/handukgyu/100114255796


옵션value 설정참고 사항
CURLOPT_AUTOREFERER TRUE를 설정하면 Location : 리디렉션을 따라갈 때 자동으로 Referer : 필드를 요청에 추가합니다. PHP 5.1.0부터 사용할 수있습니다.
CURLOPT_BINARYTRANSFERTRUE를 설정하면 CURLOPT_RETURNTRANSFER를 사용하면 출력이 아무것도 가공하지 않고 반환합니다.
CURLOPT_COOKIESESSIONTRUE로 설정하면, 쿠키 "세션"을 새로 시작합니다. 이전 세션에서로드되었던 "세션 쿠키"는 무시하도록 libcurl에 지시합니다. 기본적으로 그것이 세션 쿠키인지 여부에 관계없이 libcurl 모든 쿠키를 읽고 저장합니다. 세션 쿠키는 유효 기간이 지정되어 있지 않고 "세션"동안에만 유효 과자입니다.PHP 5.1.0부터 사용할 수있습니다.
CURLOPT_CRLFTRUE를 설정하면 전송 중에 Unix 형식으로 줄 바꿈을 CRLF로 변환합니다.
CURLOPT_DNS_USE_GLOBAL_CACHETRUE로 설정하면, 전체 DNS 캐시를 사용합니다. 이 옵션은 스레드로부터 안전하지 않습니다. 또한 기본적으로 활성화되어있습니다.
CURLOPT_FAILONERRORTRUE로 설정하면 HTTP를 통해 400 개 이상의 코드가 되돌아 때 처리 실패로 판단하고 아무것도하지 않습니다. 기본적으로 코드의 값을 무시하고 페이지의 내용을 가져옵니다.
CURLOPT_FILETIMETRUE로 설정하면 문서의 수정 날짜를 가져 오려고 시도합니다. 이 값을 검색하려면 curl_getinfo ()에서 CURLINFO_FILETIME 옵션을 사용합니다.
CURLOPT_FOLLOWLOCATIONTRUE를 설정하면 서버가 HTTP 헤더로 보내는 "Location :"헤더의 내용을 추적합니다 (이것은 반복적으로 수행됩니다. CURLOPT_MAXREDIRS이 지정되지 않은 경우, 보내는 "Location : "헤더의 내용을 계속 추적을 따름을주의합시다).
CURLOPT_FORBID_REUSETRUE로 설정하면 프로세스가 종료되었을 때 명시적으로 연결을 끊습니다. 연결을 다시 사용하지 않습니다.
CURLOPT_FRESH_CONNECTTRUE로 설정하면 캐시되는 연결을 사용하지 않고 새 연결을 설정합니다.
CURLOPT_FTP_USE_EPRTTRUE를 설정하면 FTP 다운로드에 EPRT (와 LPRT)를 사용합니다. FALSE 인 경우에는 EPRT * LPRT을 해제 PORT를 사용합니다.PHP 5.0.0에서 추가되었습니다.
CURLOPT_FTP_USE_EPSVTRUE를 설정하면 FTP 전송 시에 먼저 EPSV 명령을 사용하려고합니다. 실패는 PASV를 사용합니다. FALSE로 설정하면 EPSV을 해제합니다.
CURLOPT_FTPAPPENDTRUE로 설정하면 원격 파일을 덮어 쓰지 않고 끝에 추가합니다.
CURLOPT_FTPASCIICURLOPT_TRANSFERTEXT의 별칭입니다.
CURLOPT_FTPLISTONLYTRUE를 설정하면 FTP 디렉터리 이름만 표시합니다.
CURLOPT_HEADERTRUE를 설정하면 헤더의 내용을 출력합니다.
CURLOPT_HTTPGETTRUE로 설정하면 HTTP 요청 형식을 GET로 이동합니다. GET은 기본 설정이므로 요청 형식이 변경되는 경우에만 필요합니다.
CURLOPT_HTTPPROXYTUNNELTRUE를 설정하면 지정된 HTTP 프록시를 사용합니다.
CURLOPT_MUTETRUE를 설정하면 cURL 함수와 연관된 출력이 완전히 억제합니다.
CURLOPT_NETRCTRUE로 설정하면 원격 사이트에 연결할 때 가진 사용자 이름과 암호를 ~ /. netrc에서 가져옵니다.
CURLOPT_NOBODYTRUE로 설정하면 출력에서 텍스트를 삭제합니다.
CURLOPT_NOPROGRESSTRUE를 설정하면 cURL 전송 진행 상황 표시를 해제합니다.
참고 : PHP는이 옵션이 자동으로 TRUE로 설정합니다. 이것을 변경하는 것은 디버깅 시에만해야합니다.

CURLOPT_NOSIGNALTRUE를 설정하면 cURL 함수는 PHP 프로세스로 보내는 신호를 무시합니다. 다중 스레드 SAPI에서는 기본값으로 on되어 있으며, 따라서 타이무아우토오뿌숀도 아직 사용되고있습니다.cURL 7.10 and PHP 5.0.0에서 추가되었습니다.
CURLOPT_POST CURLOPT_POSTTRUE로 설정하면 HTTP POST를 실행합니다. POST는 application / x - www - form - urlencoded 형식으로 진행됩니다. 이것은 일반적인 HTML 양식과 같은 형식입니다.
CURLOPT_PUT CURLOPT_PUTTRUE로 설정하면 HTTP PUT합니다. PUT 파일은 CURLOPT_INFILE 및 CURLOPT_INFILESIZE으로 지정되어 있어야합니다.
CURLOPT_RETURNTRANSFER TRUE를 설정하면 curl_exec ()의 리턴 값을 문자열로 반환합니다. 일반적으로 데이터를 직접 출력합니다.
CURLOPT_SSL_VERIFYPEERFALSE로 설정하면 cURL은 서버 인증서의 유효성을 검사하지 않습니다. 다른 인증서를 CURLOPT_CAINFO 옵션을 지정하거나 CURLOPT_CAPATH 옵션 증명서 디렉토리를 지정합니다. CURLOPT_SSL_VERIFYPEER을 해제하는 경우 CURLOPT_SSL_VERIFYHOST도 TRUE 또는 FALSE로해야합니다 (기본값은 2입니다.)cURL 7.10 이상, 기본값은 TRUE입니다. 또한 cURL 7.10부터 기본으로 설치됩니다.
CURLOPT_TRANSFERTEXT TRUE를 설정하면 FTP 전송은 ASCII 모드로합니다. LDAP의 경우 데이터를 HTML이 아닌 일반 텍스트로 가져옵니다. Windows 시스템에서는 STDOUT에 바이너리 모드를 설정하지 마십시오.
CURLOPT_UNRESTRICTED_AUTHTRUE를 설정하면 (CURLOPT_FOLLOWLOCATION를 사용) 장소를 따라 갈 때 사용자 이름과 암호를 계속 보냅니다. 이것은 비록 호스트 이름이 바뀌어도 계속됩니다.PHP 5.0.0에서 추가되었습니다.
CURLOPT_UPLOADTRUE를 설정하면 업로드 준비를합니다.
CURLOPT_VERBOSETRUE를 설정하면 자세한 정보를 출력합니다. 정보 STDERR하거나 CURLOPT_STDERR에서 지정한 파일에 기록됩니다.

value option 다음 값에 대한 정수를 지정해야합니다.
옵션value 설정참고 사항
CURLOPT_BUFFERSIZE1 회로드에 버퍼의 크기. 그러나 반드시 버퍼 끝까지로드되는 것을 보장하지 않습니다.cURL 7.10 and PHP 5.0.0에서 추가되었습니다.
CURLOPT_CLOSEPOLICYCURLCLOSEPOLICY_LEAST_RECENTLY_USED 또는 CURLCLOSEPOLICY_OLDEST 이외에도 3 개의 CURLCLOSEPOLICY_ 상수가 있지만, cURL은 그들을 아직 지원하지 않습니다.
CURLOPT_CONNECTTIMEOUT연결 시도를 기다리는 유지 초. 0은 영원히 기다릴 유지하는 것을 의미합니다.
CURLOPT_DNS_CACHE_TIMEOUTDNS 항목을 메모리에 유지하는 것을 계속하는 초. 기본값은 120 (2 분)으로 설정되어있습니다.
CURLOPT_FTPSSLAUTH(사용 가능한 경우) FTP 인증 방법입니다. CURLFTPAUTH_SSL (먼저 SSL을 시도), CURLFTPAUTH_TLS (먼저 TLS를 시도) 또는 CURLFTPAUTH_DEFAULT (cURL이 결정) 중 하나입니다.cURL 7.12.2 and PHP 5.1.0에서 추가되었습니다.
CURLOPT_HTTP_VERSIONCURL_HTTP_VERSION_NONE (기본. 사용할 버전을 결정하는 것은 cURL을 맡기는) CURL_HTTP_VERSION_1_0 (HTTP/1.0 사용) 또는 CURL_HTTP_VERSION_1_1 (HTTP/1.1 사용) 중 하나입니다.
CURLOPT_HTTPAUTH사용하는 HTTP 인증 방법입니다. 다음 중에서 선택합니다. CURLAUTH_BASIC CURLAUTH_DIGEST CURLAUTH_GSSNEGOTIATE CURLAUTH_NTLM CURLAUTH_ANY 및 CURLAUTH_ANYSAFE

2 개 이상의 방법을 조합하려면 비트 연산자 | (or)을 사용합니다. 이 경우, cURL은 서버가 지원하는 방법을 문의하는 데 가장 적합한 방법을 선택합니다.

CURLAUTH_ANY CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM의 별칭입니다.

CURLAUTH_ANYSAFE CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM의 별칭입니다.

PHP 5.0.0에서 추가되었습니다.
CURLOPT_INFILESIZE파일을 원격 사이트에 업로드시 파일 사이즈.
CURLOPT_LOW_SPEED_LIMIT1 초당 바이트 단위로 전송 속도가 이보다 더 늦은 기간이 CURLOPT_LOW_SPEED_TIME 초 이상 지속되면 PHP는 전송을 종료합니다.
CURLOPT_LOW_SPEED_TIME전송 속도가 CURLOPT_LOW_SPEED_LIMIT 최신 기간이 얼마나 계속하면 전송을 중지시킬 방법을 초 단위로 지정합니다.
CURLOPT_MAXCONNECTS허용되는 영구적인 접속의 최대수. 만약이 값에 도달하면 모든 연결을 닫는지를 CURLOPT_CLOSEPOLICY에 의해 결정됩니다.
CURLOPT_MAXREDIRSHTTP 풀 직접 대상을 쫓아 최대값입니다. CURLOPT_FOLLOWLOCATION과 함께 사용합니다.
CURLOPT_PORT연결할 포트 번호입니다.
CURLOPT_PROXYAUTH프록시 연결을 사용하는 HTTP 인증 방법. CURLOPT_HTTPAUTH에서 설명한 것과 같은 옵션을 지정할 수있습니다. 프록시 인증을 지원하는 것은 당분간 CURLAUTH_BASIC 및 CURLAUTH_NTLMcURL 7.10.7 and PHP 5.1.0에서 추가되었습니다.
CURLOPT_PROXYPORT프록시 연결 포트 번호입니다. 이 포트 번호는 CURLOPT_PROXY로 지정할 수있습니다.PHP 5.0.0에서 추가되었습니다.
CURLOPT_PROXYTYPECURLPROXY_HTTP (기본값) 또는 CURLPROXY_SOCKS5cURL 7.10 and PHP 5.0.0에서 추가되었습니다.
CURLOPT_RESUME_FROM전송 도중에 다시 시작하는 경우 바이트 오프셋입니다.
CURLOPT_SSL_VERIFYHOST1은 SSL 피어 인증서의 일반 이름이 있는지 여부를 확인합니다. 2는이 외에도 이름이 호스트 이름과 일치하는지 확인합니다.
CURLOPT_SSLVERSION 사용할 수있는 SSL 버전 (2 또는 3). 기본적으로 PHP가 자동으로 결정되지만, 이것을 수동으로 설정해야 할 수도있습니다.
CURLOPT_TIMECONDITIONCURLOPT_TIMEVALUE 처리를 결정합니다. CURLOPT_TIMEVALUE에서 지정된 시간 이후에 변경된 페이지만을 반환하면 CURL_TIMECOND_IFMODSINCE 사용합니다. CURLOPT_HEADER가 TRUE라고 가정할 때, 페이지가 변경되지 않을 경우 "304 Not Modified"헤더를 반환합니다. CURL_TIMECOND_ISUNMODSINCE 반대 의미합니다. 기본값은 CURL_TIMECOND_IFMODSINCEPHP 5.1.0에서 추가되었습니다.
CURLOPT_TIMEOUTcURL 함수를 실행하는 데 걸린 시간의 최대값입니다.
CURLOPT_TIMEVALUE1970 년 1 월 1 일 이후 경과된 초. 이 값은 CURLOPT_TIMECONDITION에 사용됩니다. 기본적으로 CURL_TIMECOND_IFMODSINCE 설정됩니다.

value option 매개 변수 다음 값에 대한 문자열이어야합니다.
옵션value 설정참고 사항
CURLOPT_CAINFO대상을 확인하는 인증서를 포함하고있는 파일 이름입니다. 이것은 CURLOPT_SSL_VERIFYPEER를 사용하는 경우에만 의미가있습니다.
CURLOPT_CAPATH여러 개의 인증서 파일을 저장할 디렉토리. 이 옵션은 CURLOPT_SSL_VERIFYPEER 함께 사용합니다.
CURLOPT_COOKIEHTTP 요청에서 "Set - Cookie :"헤더의 내용.
CURLOPT_COOKIEFILE쿠키의 데이터를 저장할 파일 이름입니다. 쿠키 파일은 Netscape 형식이나 HTTP 헤더를 단순히 파일에 덤프 것이 사용 가능합니다.
CURLOPT_COOKIEJAR연결을 닫을 때 모든 내부 쿠키를 저장할 파일의 이름입니다.
CURLOPT_CUSTOMREQUESTHTTP 요청에서 "GET"또는 "HEAD"이외에 사용하는 사용자 지정 메서드입니다. 이것이 유용한 것은, "DELETE"및 기타 유명하지 않은 HTTP 요청을 실행하는 경우입니다. 사용 가능한 값은 "GET", "POST", "CONNECT"입니다. HTTP 요청의 내용을 모두 지정할 수는없습니다. 즉, "GET / 1 HTTP/1.0 \ r \ n \ r \ n"같은 기술은 실수라고하는 것입니다.
참고 사용하려고하는 방법을 서버가 지원하는 것을 확인할 때까지 이것을 사용하지 마십시오.

CURLOPT_EGBSOCKETCURLOPT_RANDOM_FILE와 비슷하지만 Entropy Gathering Daemon 소켓을 사용하여 파일 이름을 생성하는 점이 다릅니다.
CURLOPT_ENCODING"Accept - Encoding"헤더의 내용. 그러면 응답의 디코딩을 가능하게합니다. 지원되는 인코딩은 "identity", "deflate"및 "gzip"입니다. 만약 빈 문자열 ""이 지정된 경우, 지원되는 인코딩을 모두 포함하는 헤더를 전송합니다.cURL 7.10에 추가되었습니다.
CURLOPT_FTPPORTFTP를 통해 "POST"를 사용하는 IP 주소를 검색할 때 사용되는 값입니다. "POST"원격 서버에 여기가 지정한 IP 주소에 연결하도록 지시합니다. 이 값을 설정할 수있는 내용은 IP 주소, 호스트 이름, 네트워크 인터페이스 이름으로 (Unix), 또는 단순히 '-'를 지정하여 시스템의 기본 IP 주소를 지정합니다.
CURLOPT_INTERFACE사용하는 네트워크 인터페이스의 이름입니다. 인터페이스 이름, IP 주소 또는 호스트 이름을 지정할 수있습니다.
CURLOPT_KRB4LEVELKRB4 (Kerberos 4) 보안 수준. 다음 값 중 하나 (보안 낮은 순서입니다)을 지정할 수있습니다. "clear", "safe", "confidential", "private". 문자열이 아무도 없으면, "private"가 사용됩니다. 이 옵션을 NULL로하면 KRB4 보안을 해제합니다. 현재는 KRB4 보안 FTP 전송에만 사용할 수있습니다.
CURLOPT_POSTFIELDSHTTP "POST"로 보내는 모든 데이터.
CURLOPT_PROXY요청을 통해 강제하는 HTTP 프록시.
CURLOPT_PROXYUSERPWD프록시에 연결하려면 사용자 이름과 암호입니다. "[username] [password]"형식으로 지정합니다.
CURLOPT_RANDOM_FILE사용할 파일 이름을 SSL 난수 생성기를 사용하여 만듭니다.
CURLOPT_RANGE검색할 데이터의 범위를 "XY"형식으로 지정합니다. X 또는 Y는 선택 사항입니다. HTTP 전송은 어떤 범위를 쉼표로 구분된 "XY, NM"와 같은 형식을 지원합니다.
CURLOPT_REFERERHTTP 요청에 사용되는 "Referer :"헤더의 내용.
CURLOPT_SSL_CIPHER_LISTSSL에서 사용되는 암호 목록입니다. 예를 들면 RC4 - SHA 및 TLSv1 사용할 수있습니다.
CURLOPT_SSLCERTPEM 형식의 인증서가 포함된 파일의 이름입니다.
CURLOPT_SSLCERTPASSWDCURLOPT_SSLCERT 인증서를 사용하는 데 필요한 암호입니다.
CURLOPT_SSLCERTTYPE인증서 형식입니다. 지원되는 형식은 "PEM"(기본값) "DER"와 "ENG"입니다.cURL 7.9.3과 PHP 5.0.0에서 추가되었습니다.
CURLOPT_SSLENGINECURLOPT_SSLKEY에서 지정한 SSL 개인 키 암호화 엔진의 ID입니다.
CURLOPT_SSLENGINE_DEFAULT비대칭 암호화에 사용할 암호화 엔진의 ID입니다.
CURLOPT_SSLKEYSSL 개인 키를 포함하는 파일의 이름입니다.
CURLOPT_SSLKEYPASSWDCURLOPT_SSLKEY에서 지정한 SSL 개인 키를 사용하는 데 필요한 암호입니다.
참고 :이 옵션은 중요한 암호가 포함됩니다. PHP 스크립트를 안전한 상태로 유지하는 것을 잊지 마십시오.

CURLOPT_SSLKEYTYPECURLOPT_SSLKEY에서 지정한 SSL 개인키 포맷. 지원되는 형식은 다음과 같습니다. "PEM"(기본값) "DER"와 "ENG"
CURLOPT_URL검색 URL. curl_init () 세션을 초기화할 때 지정할 수있습니다.
CURLOPT_USERAGENTHTTP 요청에 사용되는 "User - Agent :"헤더의 내용.
CURLOPT_USERPWD연결에 사용할 사용자 이름과 암호입니다. "[username] [password]"형식으로 지정합니다.

value option 다음 값에 대한 배열을 지정해야합니다.
옵션value 설정참고 사항
CURLOPT_HTTP200ALIASES오류가 아닌 정상적인 응답으로 처리하는, HTTP 200 응답의 배열입니다.cURL 7.10.3 and PHP 5.0.0에서 추가되었습니다.
CURLOPT_HTTPHEADER설정 HTTP 헤더의 배열입니다.
CURLOPT_POSTQUOTEFTP 요청을 실행한 후에 서버에서 실행되는 FTP 명령의 배열입니다.
CURLOPT_QUOTEFTP 요청하기 전에 서버에서 실행되는 FTP 명령의 배열입니다.

value 스트림 리소스 (예 : fopen ()이 만드는 것)이고 다음 option 매개 변수를 설정합니다.
옵션value 설정하는 내용코멘트
CURLOPT_FILE전달 내용이 기록되는 파일. 기본값은 STDOUT (브라우저).
CURLOPT_INFILE업로드할 때 전송 내용을 읽을 파일입니다.
CURLOPT_STDERRSTDERR 대신 오류 출력 위치.
CURLOPT_WRITEHEADER전송 헤더 부분이 기록되는 파일.

value option 다음 값에 대한 의미있는 콜백 함수의 이름을 지정해야합니다.
옵션value 설정참고 사항
CURLOPT_HEADERFUNCTION콜백 함수의 이름이 콜백 함수는 2 개의 인수를 취합니다. 첫 번째 매개 변수는 CURL 리소스에서 2 번째 쓸 헤더 데이터 문자열입니다. 이 콜백 함수를 사용함에있어서 헤더 데이터를 쓰는 작업을 구현하는 것은 당신의 역할입니다. 쓴 바이트 수를 반환합니다.
CURLOPT_PASSWDFUNCTION콜백 함수의 이름이 콜백 함수는 3 개의 인수를 취합니다. 첫 번째 매개 변수는 CURL 리소스, 2 번째는 암호 프롬프트 문자열, 그리고 3 번째는 암호의 최대 길이입니다. 입력한 비밀 번호를 문자열로 반환합니다.
CURLOPT_READFUNCTION콜백 함수의 이름이 콜백 함수는 2 개의 인수를 취합니다. 첫 번째 매개 변수는 cURL 리소스, 2 번째는 읽는 데이터의 문자열입니다. 이 콜백 함수를 사용함에있어서, 데이터를 읽는 작업을 구현하는 것은 당신의 역할입니다. 읽은 데이터의 바이트 수를 반환합니다. EOF 신호를받는 경우는 0을 반환합니다.
CURLOPT_WRITEFUNCTION콜백 함수의 이름이 콜백 함수는 2 개의 인수를 취합니다. 첫 번째 매개 변수는 cURL 리소스, 2 번째는 쓸 데이터의 문자열입니다. 이 콜백 함수를 사용함에있어서, 데이터를 쓰는 작업을 구현하는 것은 당신의 역할입니다. 기록한 데이터의 정확한 바이트 수를 반환해야하며 그렇지 않으면이 함수는 실패합니다.

[출처] CURL 옵션 설정|작성자 조르프

'MS > C++' 카테고리의 다른 글

Jsoncpp 사용시 문제점  (0) 2015.01.29
_chkstk  (0) 2014.09.17
libcurl-7.19.3-win32-ssl-msvc dynamic dll 0xc000007b 문제  (3) 2013.06.10
CTreeCtrl  (0) 2013.03.11
보호된 프로세스로 설정하기  (0) 2013.02.14
멀티바이트 --> 유니코드 (매크로)  (0) 2012.11.20
boost library 설치 방법  (0) 2012.08.10
특정 Thread가 종료 되었는지 대기중인지 알수 있는 코드  (0) 2012.08.10
OpenMP  (0) 2012.07.23
ms에서 dirent.h파일 사용 하기  (0) 2012.06.08