首页 > 解决方案 > 为 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>

标签: javaaws-sdk

解决方案


推荐阅读