2016-09-11 12 views
0

私はOneDriveを持っています& Googleドライブはチャンクダウンロードを正常に処理しますが、Dropboxはファイルへの正しいhttpリクエストパスを取得できないため、DropboxファイルへのURLパスのリクエストC#

私は休憩URLの&エンドポイントの専門家ではありませんが、誰かが最新のUWP SDKの受け入れ可能なDropboxリクエストフォーマットの正しい方向を教えてくれるかもしれません。

using (var httpRequest = new HttpRequestMessage()) 
{ 
    string url = "https://content.dropboxapi.com/1/files/auto" + uri; 

    string accessKey = ApplicationData.Current.LocalSettings.Values[CommonData.dropboxAccessToken_Key].ToString(); 

    httpRequest.Method = HttpMethod.Get; 
    httpRequest.RequestUri = new Uri(url); 
    httpRequest.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("bearer", accessKey); 
} 

私はDropboxの上のドキュメントを読んでいると、それはまた、私はどこにも明確な例を見つけることができませんでした、私のための書式に明確ではありません。

もう一度おねがいします!

+0

あなたはこのdoc https://www.dropbox.com/developers/documentation/dotnet#tutorialをチェックしましたか? – Oluwafemi

+0

私はそれを見ました、私はメモリ制限のためにチャックをダウンロードしたい、私はそれをhttpの休憩方法をしたい。私はv1がチャックされたダウンロードのみをサポートしていると信じています。ありがとう – Sixjac

+0

Dropbox API v2は、コンテンツをダウンロードするエンドポイントの範囲検索リクエストをサポートしています:https://www.dropbox.com/developers/documentation/http/documentation#formats https://www.dropbox.com/developers/documentation/http/documentation#files-download – Greg

答えて

0

あなたのコードによれば、ここでの問題は承認ヘッダーにあります。

Authorization: Bearer <access token> 

をだから我々はhttpRequest.Headers.Authorization次に、あなたのコードが動作するようにALBEあるべき

httpRequest.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token); 

に変更してください:のDropbox APIの場合は、正しい認証ヘッダーは次のようにすべきです。例えば ​​"temp"フォルダの下の "file.mp3"を使用します。
enter image description here

コードが好きなことがあります。

var uri = "/temp/file.mp3"; 
using (var httpClient = new HttpClient()) 
{ 
    using (var httpRequest = new HttpRequestMessage()) 
    { 
     string url = "https://content.dropboxapi.com/1/files/auto" + Uri.EscapeDataString(uri); 

     httpRequest.Method = HttpMethod.Get; 
     httpRequest.RequestUri = new Uri(url); 
     httpRequest.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken); 

     var response = await httpClient.SendAsync(httpRequest); 

     if (response.IsSuccessStatusCode) 
     { 
      //TODO 
     } 
    } 
} 
+0

こんにちはジェイZuo、デバッグは、私が取得するエラーは、 "404が見つかりません"ので、ファイルへのパスが間違っていることを意味するHttpResponseMessgaeにあることを示す認証がうまくいます。私は、同じことをしている道の例を見つける必要があります。ありがとう – Sixjac

+0

@SeanRyan検索したいファイルはどこですか?例えば、ルートフォルダの下にある "Dropbox.pdfで始める"を使うと、URLは 'https://content.dropboxapi.com/1/files/auto/Get Started with Dropbox.pdf'でなければなりません。また、URLのパスを 'string url =" https://content.dropboxapi.com/1/files/auto "+ Uri.EscapeDataString(uri);のようにURIエンコードする必要があるかもしれません。 –

+0

Jay Zuo、 "https://content.dropboxapi.com/1/files/auto/temp/file.mp3"にする必要があります。パスをエンコードして、後で返信します。ありがとう – Sixjac

関連する問題