2012-04-18 5 views
6


ile olsun.
Bu benim terminalimde çalışıyor, orada yapıyorum:
curl https://www.googleapis.com/tasks/v1/users/@me/lists --header "Authorization: Bearer myAccessCode".
Bu iyi çalışıyor, ancak şimdi bunu bir c programında yapmak istiyorum.
yapma https Ben bir google API bağlanmaya çalışıyorum 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); 

Ama burada bir giriş gerekli olduğunu bir ileti alıyorum: Bunun için
ben var. Neyi yanlış yaptığımı bilmiyorum, başarısızlığımı gören biri var mı? Yukarıdaki açıklamada yazdığı gibi

+0

: 'curl_slist_append (başlıklar, başlık);'
yerine: 'başlıklar = curl_slist_append (başlıklarını, üstbilgi);
Böylece üstbilgiler her zaman NULL oldu ve üstbilgisi olmadan istek isteğini yaptım.
(Yukarıdaki soruda düzenledim, bu nedenle, kod benzer bir sorunu varsa, kod çalışır) – EarlOfEgo

+0

Soru daha sonra çözülmüş mü? –

+2

evet, ama benim itibar noktalarım, kendi sorumu cevaplamak için 10 saat beklemem için beni zorladı :-) Bu yüzden şimdi yapacağım. – EarlOfEgo

cevap

4

: curl_slist_append(headers, header);
yerine: headers = curl_slist_append(headers, header);
Yani başlıklarında her zaman BOŞ oldu ve ben bir başlık olmadan olsun istekte
Sadece yapılan fark etti.
(yukarıda benim soru düzenleseniz, böylece kod, çalışıp çalışmadığını bazı)

Sadece yapılan fark