我的asp.net网络应用程序需要从DropBox下载文件。 在DropBox中,我创建了一个应用程序并拥有API密钥和Auth Token,Secret等。 在我的网络应用程序中,我引用了Dropbox.Api并可以创建DropboxClient。
像这样:接下来我该怎么办?有没有人有示例代码。 我读过我需要调用异步方法来下载如下代码。
但代码无效。没有失败,但什么也没做。
任何帮助将不胜感激。谢谢
Dim folder As String = "C:\Data"
Dim file2 As String = "myFile.txt"
Using response = myDBClient.Files.DownloadAsync("/" & folder & "/" & file2)
Using fileStream = File.Create("C:\Data\myFile.txt")
(response.GetContentAsStreamAsync()).CopyTo(fileStream))
End Using
End Using
答案 0 :(得分:0)
您需要使用 Await 来获得预期结果。
演示代码:
Dim myDbClient As New DropboxClient("auth token")
Dim folder = "test" 'dropbox folder name
Dim fileName = "1.txt" 'dropbox file name
Dim response As IDownloadResponse(Of FileMetadata) = Await myDbClient.Files.DownloadAsync("/" + folder + "/" + fileName)
Dim bytes = Await response.GetContentAsByteArrayAsync()
Using fileStream = Create("D:\tom\2.txt") ' local path
fileStream.Write(bytes, 0, bytes.Length)
End Using
<强>更新强>
添加详细测试步骤:
1.创建Dropbox应用并生成身份验证令牌。
2.创建文件夹并将文件上传到dropbox文件夹
3.创建一个Asp.net空项目并添加一个名为DropBoxApiTest.aspx的webform.aspx文件并将其设置为起始页。
4.要安装Dropbox.Api,请在程序包管理器控制台中运行以下命令:
PM> Install-Package Dropbox.Api
5.在网页中添加下载按钮
<asp:Button ID="_btnDownload" runat="server" Text="Download" />
6.添加按钮的click事件和以下代码。
Protected Async Sub _btnDownload_Click(sender As Object, e As EventArgs) Handles _btnDownload.Click
Dim token = "xaMln4bUnRAAAAAAAAAAIq...."
Dim myDbClient As New DropboxClient(token)
Dim folder = "test" 'dropbox folder name
Dim fileName = "1.txt" 'dropbox file name
Dim response As IDownloadResponse(Of FileMetadata) = Await myDbClient.Files.DownloadAsync("/" + folder + "/" + fileName)
Dim bytes = Await response.GetContentAsByteArrayAsync()
Using fileStream = Create("D:\tom\download.txt") ' local path
fileStream.Write(bytes, 0, bytes.Length)
End Using
End Sub
7.我们还需要将aspx Async更改为true
8.在当地测试。