java - 为 AWS Lambda Java 实现 SdkAsyncHttpClient
问题描述
我是 Java Reactive(org.reactivestreams 包)发布者和订阅者的新手。我正在尝试执行 http 请求并从 url 获取 JSON 文件。使用 AWS Docs 中的最新 SdkAsyncHttpClient 我想获取文件以进行进一步处理,但我一直在理解如何获取文件,因为 1. 它返回 CompletableFuture,2. 即使我使用回调方法,我也无法订阅并将响应转换为 JsonNode(杰克逊库)。
我正在寻找发布者和订阅者的具体实现或示例代码,它可以将响应主体(类似于可用的唯一示例)作为返回值或回调方法提供给我。
请指导和帮助寻求一些资源。
SdkAsyncHttpClient httpClient = ProviderFactory.getAwsSdkHttp();
CompletableFuture<Void> execute = httpClient
.execute(AsyncExecuteRequest.builder()
.request(SdkHttpRequest.builder().uri(URI.create(iss + "/.well-known/jwks.json"))
.method(SdkHttpMethod.GET).build())
//Shall I use this ? where shall I get the request
.requestContentPublisher(new SimpleHttpContentPublisher(request))
//Shall I use this ? Is there a concrete implementation available for me to use?
.responseHandler(new SdkAsyncHttpResponseHandler() {
@Override
public void onStream(Publisher<ByteBuffer> stream) {
// TODO Auto-generated method stub
}
@Override
public void onHeaders(SdkHttpResponse headers) {
// TODO Auto-generated method stub
}
@Override
public void onError(Throwable error) {
// TODO Auto-generated method stub
}
}).build());
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>aws-crt-client</artifactId>
<version>2.14.13-PREVIEW</version>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>sdk-core</artifactId>
<version>2.15.2</version>
</dependency>
解决方案
推荐阅读
- php - 在 PHP 中将多维 json/array 插入多维 json/array
- javascript - 如何使用当前值在 Ext JS 中进行模板调节?
- haskell - Haskell 模块限制共享
- javascript - 带有图像滑块的汉堡菜单
- data-science - 如何判断 t-SNE 算法是否产生相同的结果?
- java - 禁用 Eclipse 重命名上下文菜单
- java - 如何设置 jdk/jre 使用的默认浏览器
- javascript - 如何仅通过在 datepicker 中选择月份来加载选定的月份日期?
- jquery - 表单错误时如何防止 jQuery .submit 触发
- javascript - 什么时候 JavaScript 代码被认为是 GC 垃圾