如何处理Dropbox java API

时间:2017-12-30 18:59:43

标签: java dropbox-api

在尝试开发与某些云服务交互的应用程序时,我发现Dropbox API for Java特别令人困惑。

具体如何查找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)中有这样的东西。 我一直在环顾四周,看起来似乎没有,但我想确保在我走下像提到here这样非常专业和复杂编码的兔子洞之前。如果有人可以请给我一个例子,说明我如何正确处理这些例外。

1 个答案:

答案 0 :(得分:1)

[交叉链接供参考:https://www.dropboxforum.com/t5/API-support/How-to-get-error-responses-java-api/m-p/258338#M14989]

Dropbox Java SDK会自动将HTTPS响应中的结构化错误数据解析为本机类,您可以根据需要使用该特性的多少。结构化错误响应(通常是响应主体中的JSON)提供的粒度远远超过状态代码。

例如,以下是您链接到my post的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);
}

here's an example显示了如何检查特定错误情况(即该示例中的“路径”错误)。

这是处理这些异常的推荐方法。我不相信SDK提供了一种检索原始未解析错误响应的方法。 (如果您不想使用SDK,可以直接致电the HTTPS endpoints。)