com.dropbox.core.DbxException $ BadRequest:{“error”:“OAuth 2 \”授权\“标题格式不正确。”}

时间:2016-07-12 15:06:13

标签: dropbox-api

我在使用java api将文件上传到dropbox时遇到以下异常。

com.dropbox.core.DbxException$BadRequest: {"error": "OAuth 2 \"Authorization\" header is not well-formed."}
    at com.dropbox.core.DbxRequestUtil.unexpectedStatus(DbxRequestUtil.java:207)
    at com.dropbox.core.DbxClient$SingleUploader$1.handle(DbxClient.java:765)
    at com.dropbox.core.DbxClient$SingleUploader$1.handle(DbxClient.java:761)
    at com.dropbox.core.DbxRequestUtil.finishResponse(DbxRequestUtil.java:279)
    at com.dropbox.core.DbxClient$SingleUploader.finish(DbxClient.java:761)
    at com.dropbox.core.DbxClient.finishUploadFile(DbxClient.java:629)
    at com.dropbox.core.DbxClient.uploadFile(DbxClient.java:562)
    at com.dropbox.core.DbxClient.uploadFile(DbxClient.java:514)

以下是我的代码

public DbxClient authDropbox(String authAccessToken)throws IOException, DbxException {
    DbxRequestConfig dbxRequestConfig = new DbxRequestConfig("JavaDropboxTutorial/1.0", Locale.getDefault().toString());
    dbxClient = new DbxClient(dbxRequestConfig, authAccessToken);
    return dbxClient;
}
public String uploadToDropbox(String filePath,String fileName,String folderName,DbxClient dbxClient) throws DbxException,IOException {
        String sharedUrl;
        File inputFile = new File(filePath);
        FileInputStream fis = new FileInputStream(inputFile);
    try {
        dbxClient.uploadFile("/"+folderName+"/"+ fileName,DbxWriteMode.add(), inputFile.length(), fis);
        sharedUrl = dbxClient.createShareableUrl("/"+folderName +"/"+fileName);         
    } finally {
        fis.close();
    }       
    return sharedUrl;
}

文件上传代码

1 个答案:

答案 0 :(得分:0)

错误“OAuth 2”授权“标头格式不正确。”表示包含OAuth 2访问令牌的标头与标头所需的模式不匹配。

SDK是使用您提供给the DbxClient constructoraccessToken参数为您构建的标头,在您的情况下是authAccessToken变量。

这可能意味着authAccessToken的值不是有效的访问令牌,并且它包含的任何字符串都会导致标头与模式不匹配。例如,它可能包含空格,这可能会导致这种情况。

要解决此问题,您应该检查authAccessToken的价值,看看其中包含的内容及其出错的原因,并防止将来再次发生这种情况。