0

Dropbox を使用する C++ アプリケーションを作成しようとしています。新しいフォルダーを作成しようとすると、{"エラー": "見つかりません"} および "HTTP/1.1 404 見つかりません" というエラーが表示されます。

Dropbox の REST Api の指示に従っているので、POST メソッドを使用しました。(代わりに PUT を使用できるかどうかはわかりません)。

これが私のコードです:

void createDirectory(const char *new_Directory_Path)

{ string 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 に答える