2012-04-18 2 views
6


Google API에 연결하려고합니다.
내 터미널에서 정상적으로 작동합니다. 다음과 같이 작동합니다.
curl https://www.googleapis.com/tasks/v1/users/@me/lists --header "Authorization: Bearer myAccessCode".
괜찮 았지만 이제는이 프로그램을 C 프로그램으로 만들고 싶습니다.
https를 libcurl로 가져 오기

CURL *curl; 
    char *header = "Authorization: Bearer myAccessCode"; 
    struct curl_slist *headers = NULL; 
    headers = curl_slist_append(headers, header); 

    curl = curl_easy_init(); 

    char *response = NULL; 

    curl_easy_setopt(curl, CURLOPT_URL, "https://www.googleapis.com/tasks/v1/users/@me/lists"); 
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); 
    curl_easy_setopt(curl, CURLOPT_HTTPGET, 1); 

    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); 
    curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); 

    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); 
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, httpsCallback); 
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); 

    curl_easy_perform(curl); 
    curl_easy_cleanup(curl); 

을하지만, 여기에 그냥 로그인이 필요하다는 메시지를 받고 있어요 :이를 위해
나는 있습니다. 내가 뭘 잘못하고 있는지 잘 모르겠다. 내 실패를 보는 사람이 있는가? 나는 위의 의견에 쓴처럼

+0

:'curl_slist_append (헤더, 헤더),'
대신'헤더 = curl_slist_append (헤더, header);'
그래서 헤더는 항상 NULL이고 헤더없이 get 요청을했다.
(내가 위의 질문에 편집하여 코드가 작동하기 때문에 비슷한 문제가있는 경우) – EarlOfEgo

+0

그럼 문제는 이미 해결 되었습니까? –

+2

그래, 내 평판 포인트는 내 자신의 질문에 대답하기 위해 10 시간을 기다려야 만 했어. 그래서 지금 해줄거야. – EarlOfEgo

답변

4

는 : curl_slist_append(headers, header);
대신 : headers = curl_slist_append(headers, header);
그래서 헤더는 항상 NULL이고 내가 헤더없이 GET 요청을 만든
난 그냥 내가 만든 것을 깨달았다.
(나는 위의 내 질문에 편집 때문에 코드가 작동하는 경우 일부)

난 그냥 내가 만든 것을 깨달았다
관련 문제