7


我正在尝试连接到谷歌 api。
这在我的终端上运行良好,我正在做:
curl https://www.googleapis.com/tasks/v1/users/@me/lists --header "Authorization: Bearer myAccessCode".
这工作正常,但现在我想在 ac 程序中进行此操作。
为此,我有:

    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);

但在这里我只是收到一条需要登录的消息。我不知道我做错了什么,有人看到我的失败吗?

4

1 回答 1

5

就像我在上面的评论中所写的那样:
我刚刚意识到我做了:curl_slist_append(headers, header);
而不是:headers = curl_slist_append(headers, header);
所以标头始终为 NULL,并且我在没有标头的情况下发出了 get 请求。
(我在上面的问题中对其进行了编辑,因此代码有效,如果有的话)

于 2012-04-19T10:22:58.703 回答