2014-08-28 2 views
0

나는이 curl 명령이 실행될 때 컬 API 호출의 측면에서 "후드"에 무슨 일이 일어나고 있는지 알아 내려고 시도하고있다 : 즉Curl :이 curl 문에 어떤 API 호출이 관련되어 있습니까?

curl "http://someURL" --header "apikey:someNumbers" --header "Content-Type:audio/x-wav" 
    --header "lngCode:en_US" --data-binary @audiofile.wav 

는 : 어떻게 C에서 위를합니까 컬 API 사용?

이 바이너리 파일을 원격 서버에 게시하는 것 외에 curl을 사용하여 서버의 응답을 구문 분석하는 방법 (서버가 오디오 파일을 분석하고 클라이언트에 결과를 반환하는 방법)에 대해서도 관심이 있습니다.

+0

curl.exe 오픈 소스, 그래서 당신은 대답 자신을 볼 수 있었다 :

curl "http://someURL" --header "apikey:someNumbers" --header "Content-Type:audio/x-wav" --header "lngCode:en_US" --data-binary @audiofile.wav 

은 대략 다음과 같은 libcurl에서 함수로 변환 호출합니다. –

+0

@Remy : 아니면 컬보다 더 많은 경험을 가진 사람에게 물어볼 수 있습니다. 그렇죠? – user1884325

답변

1

명령 :

curl_global_init(CURL_GLOBAL_DEFAULT); 

CURL *curl = curl_easy_init(); 
curl_easy_setopt(curl, CURLOPT_URL, "http://someURL"); 

curl_slist *headers = curl_slist_append(NULL, "apikey:someNumbers"); 
curl_slist_append(headers, "Content-Type:audio/x-wav"); 
curl_slist_append(headers, "lngCode:en_US"); 
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); 

// read content of "audiofile.wav" into a memory buffer, then... 
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, (char*) <pointer to memory buffer>); 
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, (curl_off_t) <size of memory buffer>); 

curl_easy_perform(curl); 

curl_easy_cleanup(curl); 
curl_slist_free_all(headers); 

curl_global_cleanup(); 
+0

감사합니다. 레미 :-) – user1884325