Dropbox文件上传未显示409错误

时间:2016-05-27 05:55:00

标签: c# dropbox dropbox-api

我正在使用Dropbox核心API上传文件。我写了上传代码,如 -

RequestResult strReq = OAuthUtility.Put
                            (
                            "https://api-content.dropbox.com/1/files_put/auto/",
                            new HttpParameterCollection
                        {
                            {"access_token", "Token"},
                            {"path","/file.txt"},
                            {"overwrite", "false"}, 
                            {"autorename","false"}, 
                            {stream}
                        }
                            );

假设根文件夹中有一个名为file.txt的现有文件,我再次尝试将同一个名称文件上传到同一个文件夹。我写了 overwrite = false和autorename = false但令人惊讶的是,响应中没有返回错误状态代码。总是在响应中返回成功代码200.我需要显示正确的错误代码。

1 个答案:

答案 0 :(得分:1)

有两件事突出:

  1. 您的网址为https://api-content.dropbox.com/1/files_put/auto/,但应该是(例如)https://api-content.dropbox.com/1/files_put/auto/file.txt。应从path
  2. 中删除HttpParameterCollection参数
  3. 我不熟悉您正在使用的库,但是您确定这些参数会转换为查询参数并且stream成为HTTP正文吗?即生成的URL应为https://api-content.dropbox.com/1/files_put/auto/file.txt?overwrite=false&autorename=false&access_token=<TOKEN>,然后文件内容应该放在请求正文中。请确保这是正在发生的事情。
  4. 请分享200响应回来的身体。它应该告诉你,例如,写入文件的路径。

    请注意,如果您将完全相同的文件内容上传到同一路径,则不会将其视为冲突,因此在查找409时,请确保您将不同的内容上传到该文件。