在ASP.NET中使用C#在Dropbox上上载文件

时间:2016-10-07 15:29:16

标签: oauth-2.0 dropbox-api

 RequestResult strReq = OAuthUtility.Put(
                    "https://content.dropboxapi.com/1/files_put/auto/",
                     new HttpParameterCollection {
                        {"access_token",MYAccessToken},
                        {"path",Path.Combine(this.CurrentPath, Path.GetFileName(@"C:\test\jj.kk\Downloads\1990480.jpg")).Replace("\\","/")},
                        {"overwrite","true"},
                        {"autorename","true"}
                   }
                 );

我使用上面的代码在Dropbox上传文件但是出现以下错误:

  

远程服务器返回错误:(400)错误请求。

     

RequestResult:{"错误":"内容类型(application / x-www-form-urlencoded)可能不是(\' application / x-www- form-urlencoded \',\' multipart / form-data \')" }

     

Httpheader:   {Transfer-Encoding:chunked   连接:保持活力   X-Dropbox-Request-Id:4029d2ae041cf1f25d8f58d06d158b83   X-Robots-Tag:noindex,nofollow,noimageindex   Content-Type:application / json   日期:2016年10月7日星期五15:24:17 GMT   服务器:nginx   }

还有其他方法可以在ASP.NET上的Dropbox上传文件吗?

1 个答案:

答案 0 :(得分:0)

您收到的错误消息表明您的API请求的问题是Content-Type具有意外值。也就是说,您(通过您正在使用的库,大概是)正在发送application/x-www-form-urlencoded。这不是Dropbox API /1/files_put endpoint允许的格式,它需要请求正文中的原始文件数据。

要回答您的实际问题,还有另一种方法可以上传到ASP.NET中的Dropbox。您可以使用Dropbox API v2,而不是Dropbox API v1。 (事实上​​你应该,因为Dropbox API v1 is deprecated。)

为此,我们强烈建议您使用官方SDK:

https://www.dropbox.com/developers/documentation/dotnet

或者,您可以直接使用HTTP端点,例如:

https://www.dropbox.com/developers/documentation/http/documentation#files-upload