2012-04-18 23 views
6


Tôi đang cố gắng kết nối với một api của google.
Điều này hoạt động tốt trong thiết bị đầu cuối của tôi, ở đó tôi đang thực hiện:
curl https://www.googleapis.com/tasks/v1/users/@me/lists --header "Authorization: Bearer myAccessCode".
Điều này hoạt động tốt, nhưng bây giờ tôi muốn thực hiện điều này bên trong một chương trình c.
Đối với điều này tôi có:
Đặt https với 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); 

Nhưng ở đây tôi chỉ nhận được một thông điệp rằng một tên đăng nhập là bắt buộc. Tôi không biết mình đang làm gì sai, có ai nhìn thấy thất bại của tôi không?

+0

Tôi chỉ nhận ra rằng tôi đã thực hiện: 'curl_slist_append (tiêu đề, tiêu đề);'
thay vì: 'header = curl_slist_append (tiêu đề, tiêu đề); '
Vì vậy, tiêu đề luôn là NULL và tôi đã thực hiện yêu cầu nhận không có tiêu đề.
(Tôi đã chỉnh sửa nó trong câu hỏi của mình ở trên, vì vậy mã hoạt động, nếu ai đó có vấn đề tương tự) – EarlOfEgo

+0

Vì vậy, câu hỏi sau đó đã được giải quyết? –

+2

có, nhưng điểm danh tiếng của tôi buộc tôi phải đợi 10 giờ để trả lời câu hỏi của riêng mình :-) Vì vậy, tôi sẽ làm ngay bây giờ. – EarlOfEgo

Trả lời

4

Giống như tôi đã viết trong các bình luận trên:
Tôi chỉ nhận ra rằng tôi đã thực hiện: curl_slist_append(headers, header);
thay vì: headers = curl_slist_append(headers, header);
Vì vậy, tiêu đề luôn NULL và tôi đã nhận được yêu cầu mà không có một tiêu đề.
(tôi sửa nó trong câu hỏi của tôi ở trên, vì vậy mã làm việc, nếu một số)

Các vấn đề liên quan