【问题标题】:com.dropbox.core.DbxException$BadRequest: {"error": "OAuth 2 \"Authorization\" header is not well-formed."}com.dropbox.core.DbxException$BadRequest: {"error": "OAuth 2 \"Authorization\" 标头格式不正确。"}
【发布时间】:2016-07-12 15:06:13
【问题描述】:

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

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;
}

文件上传代码

【问题讨论】:

    标签: dropbox-api


    【解决方案1】:

    错误“OAuth 2 "Authorization" 标头格式不正确。”表示包含 OAuth 2 访问令牌的标头与标头的预期模式不匹配。

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-05-25
      • 1970-01-01
      • 2015-05-12
      • 2021-07-29
      • 2010-10-28
      • 1970-01-01
      • 2021-01-17
      • 2012-08-18
      • 1970-01-01
      相关资源
      最近更新 更多