2017-08-24 65 views
0

我碰到的Dropbox API的錯誤:我在這個Angular HTTP請求中做了什麼錯誤?

錯誤調用API函數「文件/下載」:HTTP標頭「Dropbox的-API精氨酸」:作爲JSON無法解碼輸入。

let url = 'https://content.dropboxapi.com/2/files/download' 
    let headers = new Headers({ }); 
    headers.append('Authorization', 'Bearer ...'); 
    headers.append('Dropbox-API-Arg', '/readme.txt'); 
    let options = new RequestOptions({ headers: headers }); 

     this.http 
     .get(url, options) 
     .subscribe(this.fileContent) 

這是他們把他們的API的例子:

curl -X POST https://content.dropboxapi.com/2/files/download \ 
    --header "Authorization: Bearer <get access token>" \ 
    --header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Prime_Numbers.txt\"}" 

我可能已經得到了標題錯角我以前從來沒有使用過。

編輯:路徑變量是一個等於文件路徑的字符串。即的「readme.txt」

+0

什麼版本的SDK是你使用? –

+0

我只使用HTTP路由。 https://www.dropbox.com/developers/documentation/http/documentation#files-download – Zachscs

回答

1

做了一個快速谷歌發現這樣的:https://www.dropboxforum.com/t5/API-support/HTTP-header-quot-Dropbox-API-Arg-quot-could-not-decode-input-as/td-p/173822

本質上是可變path格式不按照該API所期待的。

我已經添加了效用函數的鏈接提供:

var charsToEncode = /[\u007f-\uffff]/g; 

function http_header_safe_json(v) { 
    return JSON.stringify(v).replace(charsToEncode, 
    function(c) { 
     return '\\u'+('000'+c.charCodeAt(0).toString(16)).slice(-4); 
    } 
); 
} 

編輯

path變量應該是這樣的:

var path = { 
    path: '/readme.txt' 
}; 
+0

我已經看到了。我不知道api期望的格式。我嘗試使用那個回答那個線程的人的功能,它給了我回答它的那個人所說的同樣的錯誤。 – Zachscs

+0

你能提供你的變量'路徑'中的值嗎? – jkris

+0

我剛剛寫了'/readme.txt' – Zachscs

相關問題