2017-03-13 2 views
0

Dropbox 다운로드 파일 API를 사용하고 토큰을 받았지만 400 번의 잘못된 요청 오류가 발생했습니다 "API 함수 호출에 오류가 발생했습니다"파일/다운로드 : HTTP 헤더를 제공해야 함 "허가"또는 URL 매개 변수를 "승인"Dropbox 다운로드 파일 API가 400 오류로 작동을 멈췄습니다

내가 보관 용 API를 문서에 따라,하지만 작동하지 않습니다 ~ ""~ 나는 그것을 어떻게 해결합니까?

이가 (angular2)

downloadFile(fileid){ 
let headers = new Headers(); 

headers.append('Authorization', 'Bearer ' + this.accessToken); 
headers.append('Dropbox-API-Arg','path:'+ fileid); 

return this.http.post('https://content.dropboxapi.com/2/files/download',new RequestOptions({ headers: headers ,responseType:ResponseContentType.ArrayBuffer})).map((res) => { 

    let arrayBuffer = res.arrayBuffer(); 
    let contentType = res.headers.get('content-type'); 
    return { 
    fileid: fileid, 
    blob: new Blob([arrayBuffer], { type: contentType }) 
    }; 
}); 
내 코드입니다
+0

:

그래서 어쩌면 angular2에서, 당신은 같은 것을 할 필요가 : 또한

headers.append('Content-Type',''); 

'드롭 박스-API, 인수'헤더처럼해야 '귀하의 승인 토큰에 있습니까? –

+0

나는 dropbox api doc을 따릅니다. Bearer https://www.dropbox.com/developers/documentation/http/documentation#files-download를 사용하십시오. – steven

+0

[Crosslinking for reference : https://www.dropboxforum.com/ t5/API-support/download-file-API-stopped-working-with-400-error/mp/211317 # M10617] – Greg

답변

1

Dropbox v2 API를 사용합니다. 안드로이드에. 너처럼 나 한테 400 건의 나쁜 요청이있어. Android HttpUrlConnection은 기본 "Content-Type"헤더 값을 설정합니다. 드롭 박스 다운로드 API에는 "Content-Type"이 없거나 비어 있어야합니다. 하지만 iOS에서 같은 문제가 없습니다. 당신이`무기명을 사용하는 이유는

headers.append('Dropbox-API-Arg','{\"path\": \"/filepath\"}'); 
+0

headers.append ('Content-Type', ''); 그게 정말 분명하지 않아요. 고마워요! –