2012-04-18 59 views
6


我試圖連接到谷歌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(頭,頭文件);'
所以頭文件總是NULL,並且我做了沒有頭文件的get請求。
(我在上面的問題中編輯了它,所以代碼有效,如果有人有類似的問題) – EarlOfEgo 2012-04-18 14:39:57

+0

那麼問題就已經解決了嗎? – 2012-04-19 06:31:19

+2

是的,但是我的聲望點迫使我等了10個小時纔回答自己的問題:-)所以我現在就做。 – EarlOfEgo 2012-04-19 10:21:53

回答

4

就像我上面的評論中寫道:
我才意識到,我提出:curl_slist_append(headers, header);
代替:headers = curl_slist_append(headers, header);
所以頭總是NULL和我做了無頭的GET請求。
(I編輯它在我的上述問題,所以代碼工作,如果一些)