我在使用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;
}
文件上传代码
答案 0 :(得分:0)
错误“OAuth 2”授权“标头格式不正确。”表示包含OAuth 2访问令牌的标头与标头所需的模式不匹配。
SDK是使用您提供给the DbxClient
constructor的accessToken
参数为您构建的标头,在您的情况下是authAccessToken
变量。
这可能意味着authAccessToken
的值不是有效的访问令牌,并且它包含的任何字符串都会导致标头与模式不匹配。例如,它可能包含空格,这可能会导致这种情况。
要解决此问题,您应该检查authAccessToken
的价值,看看其中包含的内容及其出错的原因,并防止将来再次发生这种情况。