azure-active-directory - 如何使用 MS JAVA SDK for GRAPH API 重试请求?
问题描述
我是使用 Graph API 的初学者,目前正在尝试处理我的代码中与节流相关的错误。在 sdk 的 github 页面中有一个 RetryHandler 类。但我似乎找不到示例请求的代码实现。有没有我可以检查和尝试的例子?
作为一个例子,我可以在下面给出我自己的代码。
@Override
public JsonObject getUserList(String accessToken){
LOGGER.trace("Querying directRoutingEnabled users");
final String selectQuery = "mail,givenName,surname,displayName";
final List<Option> requestOptions = new LinkedList<>();
final String filterQuery = createFilterQuery();
requestOptions.add(new HeaderOption(CONSISTENCY_LEVEL, EVENTUAL));
requestOptions.add(new QueryOption(SELECT, selectQuery));
requestOptions.add(new QueryOption(COUNT, true));
requestOptions.add(new QueryOption(FILTER, filterQuery));
IGraphServiceClient graphServiceClient = GraphServiceClient.builder().authenticationProvider(new SimpleAuthProvider(accessToken)).buildClient();
IUserCollectionRequest request = graphServiceClient
.users()
.buildRequest(requestOptions);
IUserCollectionPage users = request.get();
return users.getRawObject();
}
我如何使用 Graph SDK for Java 使用重试机制(也可能还有错误处理)覆盖此代码?.
解决方案
核心库中的默认中间件带有默认的 RetryHandler 实现。并且由于最近的修复,它也适用于限制错误。
从 SDK V3 开始,您可以使用自定义拦截器指定自定义 OkHttpClient。可在此处找到自定义指南:https ://docs.microsoft.com/en-us/graph/sdks/customize-client?tabs=java 。
默认 RetryHandler 实现:https ://github.com/microsoftgraph/msgraph-sdk-java-core/blob/dev/src/main/java/com/microsoft/graph/httpcore/RetryHandler.java
默认 RetryHandler 设计:https ://microsoftgraph.github.io/msgraph-sdk-design/middleware/RetryHandler.html
推荐阅读
- jenkins - Jenkins 用 groovy 方法共享常用环境变量
- asp.net - 防止跨站请求伪造(CSRF)
- python - 如何在正则表达式中对“或”匹配进行分组?
- excel - 改变单个用户表单页面的大小
- unity3d - 我可以在 Unity 编辑器中看到 CharacterController 的对撞机吗?
- javascript - 这是我的循环的正确等价物吗?
- javascript - 在函数中使用 await 时是否有用于添加异步的 ESlint 规则?
- jenkins - 如何将参数设置到詹金斯管道脚本中
- node.js - 使用角度 6 和节点生成报告
- mysql - Mac OS High Sierra:在 MySql WorkBench v8.0.13 社区中测试连接时访问被拒绝