【问题标题】:Dropbox Chunked Upload returning a 404Dropbox 分块上传返回 404
【发布时间】:2014-07-23 16:00:25
【问题描述】:

我在通过 HTTP(s) 将分块上传提交到 Dropbox 时遇到问题。 上传似乎工作正常,但在提交时我收到 404 错误。 URI如下:

https://api-content.dropbox.com/1/commit_chunked_upload/auto/37Lc6FpJvLwe120D.dat

我的应用被沙箱化到它自己的文件夹中,因此我向 Dropbox 请求的权限最少。因此,我尝试更改 auto/ 之后的所有内容,以包括文件的完整路径 (Apps/MyApp/Filename.dat) 和 (sandbox/Filename.dat),但我的所有操作都返回 404 响应。

有什么建议吗?

  • 编辑 -

上传参数在 POST 正文中。代码如下:

public void commitChunkedUpload(string filename, string uploadID)
    {
        Uri uri = new Uri(new Uri(oauthUploadURI), String.Format("commit_chunked_upload/auto/sandbox/{0}", filename));

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
        request.Headers.Add("Authorization", "Bearer " + authResponse["access_token"]);
        request.Method = "POST";

        byte[] parameters = Encoding.UTF8.GetBytes(String.Format("overwrite={0}&upload_id={1}", "false", uploadID));

        request.ContentLength = parameters.Length;
        Stream outputStream = request.GetRequestStream();
        outputStream.Write(parameters, 0, parameters.Length);

        var response = request.GetResponse();
        var reader = new StreamReader(response.GetResponseStream());
        var jsonReader = JsonReaderWriterFactory.CreateJsonReader(response.GetResponseStream(), new System.Xml.XmlDictionaryReaderQuotas());

        var root = XElement.Load(jsonReader);
    }

我确信问题在于如何将文件名/路径附加到 URI,但我不知道应该是什么。

【问题讨论】:

  • 为什么投反对票?如果有任何不清楚的地方,我很乐意添加更多细节。
  • 您使用的是什么 HTTP 方法?您是否传入upload_id 参数?也许你可以分享你的代码。

标签: c# http dropbox dropbox-api


【解决方案1】:

原来问题在于我没有为 POST 数据设置内容类型。 404 不是指终点,而是找不到上传 id 的事实。

添加:

request.ContentType = "application/x-www-form-urlencoded";

对问题进行了排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多