在尝试开发与某些云服务交互的应用程序时,我发现Java专用的Dropbox API尤其令人困惑。
具体如何查找HTTP错误。例如,使用Google Drive API,如果请求失败,则将抛出IOException,但是您可以将该IOException解析为GoogleJsonResponseException,然后可以提取状态代码。
try {
File f =drive.files().create(fileMetadata).setFields("id").execute();
return f.getId();
} catch (IOException e) {
if (e instanceof GoogleJsonResponseException){
int statusCode = ((GoogleJsonResponseException) e).getStatusCode();
errorHandler(statusCode);
} else {
e.printStackTrace();
}
}
因此,java dropbox API(具体是3.0.5)中是否存在类似的内容。我一直在环顾四周,似乎没有,但是我想确保在进入这里提到的极其专业和复杂的编码的麻烦之前,先确定一下。如果可以,请给我一个例子,说明如何正确处理这些异常。
[交叉引用以供参考:https : //www.dropboxforum.com/t5/API-support/How-to-get-error-responses-java-api/mp/258338#M14989 ]
Dropbox Java SDK自动将HTTPS响应中的结构化错误数据解析为本机类,您可以根据需要使用或多或少的特定性。结构化错误响应(响应主体中通常为JSON)提供的粒度比状态码要多得多。
例如,这是您链接到我的帖子中的StackOverflow文档中现在缺少的代码示例:
try {
SharedLinkMetadata sharedLinkMetadata = client.sharing().createSharedLinkWithSettings("/test.txt");
System.out.println(sharedLinkMetadata.getUrl());
} catch (CreateSharedLinkWithSettingsErrorException ex) {
System.out.println(ex);
} catch (DbxException ex) {
System.out.println(ex);
}
而且这里有一个例子,说明如何检查特定错误情况下(即,在例如“路径”的错误)。
这是处理这些异常的推荐方法。我不认为SDK提供了一种检索原始未解析错误响应的方法。(但是,如果您不想使用SDK,则可以直接自己调用HTTPS端点。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句