0

我正在尝试制作一个使用 Dropbox 的 c++ 应用程序。当我尝试创建一个新文件夹时,出现以下错误:{"error": "Not Found"} 和 "HTTP/1.1 404 Not Found"。

我遵循了 Dropbox 的 REST Api 的说明,所以我使用了 POST 方法。(我不确定是否可以使用 PUT)。

这是我的代码:

void createDirectory(const char *new_Directory_Path)

{ 字符串 create_Directory_Url = " https://api.dropbox.com/1/fileops/create_folder/sandbox/test_folder ";

    CURL* curl = curl_easy_init();
    if(!curl)
    {
        CURLcode res;

        struct curl_slist *headers = NULL;
        string my_header = "Authorization: OAuth oauth_version=\"1.0\", oauth_signature_method=\"PLAINTEXT\", 
        oauth_consumer_key=\""
                    + m_consumer_key + "\", oauth_token=\"" + m_accessKey + "\", oauth_signature=\""
                    + m_consumer_secret + "&" + m_accessSecret + "\"";
        headers = curl_slist_append(headers, my_header.c_str());

        curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
        curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
        curl_easy_setopt(curl, CURLOPT_POST, 1L);
        curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0);
        curl_easy_setopt(curl, CURLOPT_URL, create_Directory_Url.c_str());

        res = curl_easy_perform(curl);

        curl_slist_free_all(headers);
        curl_easy_cleanup(curl);
    }

}

请问,有人知道我做错了什么吗?

4

1 回答 1

0

查看文档,我相信您希望将 sandbox/test_folder 从 url 中删除,并使用 root=sandbox & path=test_folder 作为表单值。

下面是提交表单参数的例子: http: //curl.haxx.se/libcurl/c/postit2.html

编辑:我在这里找到了另一个示例:https ://github.com/geersch/DropboxRESTApi/blob/master/src/part-3/README.md这似乎显示了添加到 url 的查询字符串中的参数,而不是作为形成价值观。文档页面不清楚。它只是将它们显示为参数,但没有指定哪种类型。

于 2013-06-21T13:13:11.150 回答