• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java AsyncCompletionHandler类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.asynchttpclient.AsyncCompletionHandler的典型用法代码示例。如果您正苦于以下问题:Java AsyncCompletionHandler类的具体用法?Java AsyncCompletionHandler怎么用?Java AsyncCompletionHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



AsyncCompletionHandler类属于org.asynchttpclient包,在下文中一共展示了AsyncCompletionHandler类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: sendRequest

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
@Override
public <T> Single<T> sendRequest(SqsAction<T> action) {
    Request asyncRequest = action.toHttpRequest(credentialsProvider.getCredentials());
    SingleSubject<T> responseSubject = SingleSubject.create();
    httpClient.executeRequest(asyncRequest, new AsyncCompletionHandler<Response>() {
        @Override
        public Response onCompleted(Response httpResponse) {
            Single.fromCallable(() -> action.parseHttpResponse(httpResponse))
                    .subscribeWith(responseSubject);
            return httpResponse;
        }

        @Override
        public void onThrowable(Throwable throwable) {
            responseSubject.onError(throwable);
        }
    });
    return responseSubject;
}
 
开发者ID:Bandwidth,项目名称:async-sqs,代码行数:20,代码来源:BaseSqsRequestSender.java


示例2: send

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
public void send(String to, String text) {
    ArrayList<Param> params = new ArrayList<>();
    params.add(new Param("api_key", key));
    params.add(new Param("api_secret", secret));
    params.add(new Param("from", "Blynk"));
    params.add(new Param("to", to));
    params.add(new Param("text", text));

    httpclient.preparePost("https://rest.nexmo.com/sms/json")
            .setQueryParams(params)
            .execute(new AsyncCompletionHandler<Response>() {
                @Override
                public Response onCompleted(org.asynchttpclient.Response response) throws Exception {
                    if (response.getStatusCode() == 200) {
                        SmsResponse smsResponse = smsResponseReader.readValue(response.getResponseBody());
                        if (!smsResponse.messages[0].status.equals("0")) {
                            log.error(smsResponse.messages[0].error);
                        }
                    }
                    return response;
                }
            });


}
 
开发者ID:blynkkk,项目名称:blynk-server,代码行数:26,代码来源:SMSWrapper.java


示例3: testSendRequestSuccess

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
@Test
public void testSendRequestSuccess() throws Exception {
    Single<Object> result = requestSender.sendRequest(actionMock);
    result.test().assertNotComplete();
    ArgumentCaptor<AsyncCompletionHandler> captor = ArgumentCaptor.forClass(AsyncCompletionHandler.class);
    verify(asyncHttpClientMock).executeRequest((Request) any(), captor.capture());
    AsyncCompletionHandler handler = captor.getValue();

    handler.onCompleted(httpResponseMock);
    result.test().assertValue(actionResponse);
}
 
开发者ID:Bandwidth,项目名称:async-sqs,代码行数:12,代码来源:BaseSqsRequestSenderTest.java


示例4: testSendRequestOnThrowable

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
@Test
public void testSendRequestOnThrowable() throws Exception {
    Single<Object> result = requestSender.sendRequest(actionMock);
    result.test().assertNotComplete();
    ArgumentCaptor<AsyncCompletionHandler> captor = ArgumentCaptor.forClass(AsyncCompletionHandler.class);
    verify(asyncHttpClientMock).executeRequest((Request) any(), captor.capture());
    AsyncCompletionHandler handler = captor.getValue();

    RuntimeException exception = new RuntimeException("error");
    handler.onThrowable(exception);
    result.test().assertError(exception);
}
 
开发者ID:Bandwidth,项目名称:async-sqs,代码行数:13,代码来源:BaseSqsRequestSenderTest.java


示例5: testSendRequestParseFailed

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
@Test
public void testSendRequestParseFailed() throws Exception {
    RuntimeException exception = new RuntimeException("error");
    when(actionMock.parseHttpResponse(any())).thenThrow(exception);
    Single<Object> result = requestSender.sendRequest(actionMock);
    result.test().assertNotComplete();
    ArgumentCaptor<AsyncCompletionHandler> captor = ArgumentCaptor.forClass(AsyncCompletionHandler.class);
    verify(asyncHttpClientMock).executeRequest((Request) any(), captor.capture());
    AsyncCompletionHandler handler = captor.getValue();
    handler.onCompleted(httpResponseMock);
    result.test().assertError(exception);
}
 
开发者ID:Bandwidth,项目名称:async-sqs,代码行数:13,代码来源:BaseSqsRequestSenderTest.java


示例6: ToyClientMetricsEmitter

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
public ToyClientMetricsEmitter(TaskMetricEmitter parent, Request request, AsyncCompletionHandler<T> asyncHandler) {
    this.emitter = parent.start(
            "client.method", request.getMethod(),
            "client.url", request.getUrl(),
            "client.host", request.getUri().getHost());
    this.asyncHandler = asyncHandler;
}
 
开发者ID:yahoo,项目名称:metrics-api,代码行数:8,代码来源:ToyClientMetricsEmitter.java


示例7: asyncDoGetKeepAliveHandlerTest_channelClosedDoesNotFail

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
@Test(groups = "standalone", invocationCount = 10, alwaysRun = true)
public void asyncDoGetKeepAliveHandlerTest_channelClosedDoesNotFail() throws Exception {
    try (AsyncHttpClient client = asyncHttpClient()) {
        // Use a l in case the assert fail
        final CountDownLatch l = new CountDownLatch(2);

        final Map<String, Boolean> remoteAddresses = new ConcurrentHashMap<>();

        AsyncCompletionHandler<Response> handler = new AsyncCompletionHandlerAdapter() {

            @Override
            public Response onCompleted(Response response) throws Exception {
                System.out.println("ON COMPLETED INVOKED " + response.getHeader("X-KEEP-ALIVE"));
                try {
                    assertEquals(response.getStatusCode(), 200);
                    remoteAddresses.put(response.getHeader("X-KEEP-ALIVE"), true);
                } finally {
                    l.countDown();
                }
                return response;
            }
        };

        client.prepareGet(getTargetUrl()).execute(handler).get();
        server.stop();
        server.start();
        client.prepareGet(getTargetUrl()).execute(handler);

        if (!l.await(TIMEOUT, TimeUnit.SECONDS)) {
            fail("Timed out");
        }

        assertEquals(remoteAddresses.size(), 2);
    }
}
 
开发者ID:amaralDaniel,项目名称:megaphone,代码行数:36,代码来源:ConnectionPoolTest.java


示例8: win7DisconnectTest

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
/**
 * This test just make sure the hack used to catch disconnected channel
 * under win7 doesn't throw any exception. The onComplete method must be
 * only called once.
 * 
 * @throws Exception if something wrong happens.
 */
@Test(groups = "standalone")
public void win7DisconnectTest() throws Exception {
    final AtomicInteger count = new AtomicInteger(0);

    try (AsyncHttpClient client = asyncHttpClient()) {
        AsyncCompletionHandler<Response> handler = new AsyncCompletionHandlerAdapter() {

            @Override
            public Response onCompleted(Response response) throws Exception {

                count.incrementAndGet();
                StackTraceElement e = new StackTraceElement("sun.nio.ch.SocketDispatcher", "read0", null, -1);
                IOException t = new IOException();
                t.setStackTrace(new StackTraceElement[] { e });
                throw t;
            }
        };

        try {
            client.prepareGet(getTargetUrl()).execute(handler).get();
            fail("Must have received an exception");
        } catch (ExecutionException ex) {
            assertNotNull(ex);
            assertNotNull(ex.getCause());
            assertEquals(ex.getCause().getClass(), IOException.class);
            assertEquals(count.get(), 1);
        }
    }
}
 
开发者ID:amaralDaniel,项目名称:megaphone,代码行数:37,代码来源:ConnectionPoolTest.java


示例9: zeroCopyPostTest

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
@Test(groups = "standalone")
public void zeroCopyPostTest() throws IOException, ExecutionException, TimeoutException, InterruptedException, URISyntaxException {
    try (AsyncHttpClient client = asyncHttpClient()) {
        final AtomicBoolean headerSent = new AtomicBoolean(false);
        final AtomicBoolean operationCompleted = new AtomicBoolean(false);

        Response resp = client.preparePost("http://localhost:" + port1 + "/").setBody(SIMPLE_TEXT_FILE).execute(new AsyncCompletionHandler<Response>() {

            public State onHeadersWritten() {
                headerSent.set(true);
                return State.CONTINUE;
            }

            public State onContentWritten() {
                operationCompleted.set(true);
                return State.CONTINUE;
            }

            @Override
            public Response onCompleted(Response response) throws Exception {
                return response;
            }
        }).get();
        assertNotNull(resp);
        assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK);
        assertEquals(resp.getResponseBody(), SIMPLE_TEXT_FILE_STRING);
        assertTrue(operationCompleted.get());
        assertTrue(headerSent.get());
    }
}
 
开发者ID:amaralDaniel,项目名称:megaphone,代码行数:31,代码来源:ZeroCopyFileTest.java


示例10: makeRequest

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
public PrecipiceFuture<HTTPStatus, Response> makeRequest(RequestBuilder request) {
    request.setUrl(url);

    final PrecipicePromise<HTTPStatus, Response> promise = Asynchronous.acquirePermitsAndPromise(guardRail, 1L);
    client.executeRequest(request, new AsyncCompletionHandler<Void>() {
        @Override
        public Void onCompleted(Response response) throws Exception {
            int httpStatus = response.getStatusCode();
            if (httpStatus < 200 || httpStatus > 299) {
                promise.complete(HTTPStatus.NON_200, response);
            } else {
                promise.complete(HTTPStatus.STATUS_200, response);
            }
            return null;
        }

        @Override
        public void onThrowable(Throwable t) {
            if (t instanceof TimeoutException) {
                promise.completeExceptionally(HTTPStatus.TIMEOUT, t);
            } else {
                promise.completeExceptionally(HTTPStatus.ERROR, t);
            }
        }
    });
    return promise.future();
}
 
开发者ID:tbrooks8,项目名称:Precipice,代码行数:28,代码来源:HttpAsyncService.java


示例11: registerService

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
@Override
public void registerService() {
    stream(serviceRegistryProperties.getServers().split(","))
            .filter(server -> !isEmpty(server))
            .forEach(discoveryServer -> {
                try {
                    LOG.debug("Updating registration of service at '{}'", discoveryServer);
                    httpClient
                            .preparePut(discoveryServer + "/environments/" + edisonApplicationProperties.getEnvironment() + "/" + applicationInfo.name)
                            .setHeader("Content-Type", "application/vnd.otto.edison.links+json")
                            .setHeader("Accept", "application/vnd.otto.edison.links+json")
                            .setBody(
                                    "{\n" +
                                            "   \"groups\":[\"" + edisonApplicationProperties.getGroup() + "\"],\n" +
                                            "   \"expire\":" + serviceRegistryProperties.getExpireAfter() + ",\n" +
                                            "   \"links\":[{\n" +
                                            "      \"rel\":\"http://github.com/otto-de/edison/link-relations/microservice\",\n" +
                                            "      \"href\" : \"" + serviceRegistryProperties.getService() + "\",\n" +
                                            "      \"title\":\"" + applicationInfo.title + "\"\n" +
                                            "   }]  \n" +
                                            "}"
                            )
                            .execute(new AsyncCompletionHandler<Integer>() {
                                @Override
                                public Integer onCompleted(final Response response) throws Exception {
                                    if (response.getStatusCode() < 300) {
                                        LOG.info("Successfully updated registration at " + discoveryServer);
                                    } else {
                                        LOG.warn("Failed to update registration at '{}': Status='{}' '{}'", discoveryServer, response.getStatusCode(), response.getStatusText());
                                    }
                                    return response.getStatusCode();
                                }

                                @Override
                                public void onThrowable(final Throwable t) {
                                    LOG.error("Failed to register at '{}'", discoveryServer, t);
                                }
                            });
                } catch (final Exception e) {
                    LOG.error("Error updating registration", e);
                }
            });
}
 
开发者ID:otto-de,项目名称:edison-microservice,代码行数:44,代码来源:AsyncHttpRegistryClient.java


示例12: send

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
public void send(GCMMessage messageBase, final Map<String, String> tokens, final String uid) {
    if (gcmURI == null) {
        log.error("Error sending push. Google cloud messaging properties not provided.");
        return;
    }

    String message;
    try {
        messageBase.setTitle(title);
        message = messageBase.toJson();
    } catch (JsonProcessingException e) {
        log.error("Error sending push. Wrong message format.");
        return;
    }

    httpclient.preparePost(gcmURI).setHeader("Authorization", apiKey)
            .setHeader(HttpHeaderNames.CONTENT_TYPE, "application/json; charset=utf-8")
            .setBody(message)
            .execute(new AsyncCompletionHandler<Response>() {
                @Override
                public Response onCompleted(Response response) throws Exception {
                    if (response.getStatusCode() == HttpResponseStatus.OK.code()) {
                        GCMResponseMessage gcmResponseMessage =
                                gcmResponseReader.readValue(response.getResponseBody());
                        if (gcmResponseMessage.failure == 1) {
                            String errorMessage =
                                    gcmResponseMessage.results != null && gcmResponseMessage.results.length > 0
                                            ? gcmResponseMessage.results[0].error
                                            : messageBase.getToken();
                            processError(errorMessage, tokens, uid);
                        }
                        return response;
                    }

                    processError(response.getResponseBody(), tokens, uid);
                    return response;
                }

                @Override
                public void onThrowable(Throwable t) {
                    processError(t.getMessage(), tokens, uid);
                }
            });

}
 
开发者ID:blynkkk,项目名称:blynk-server,代码行数:46,代码来源:GCMWrapper.java


示例13: facebookLogin

import org.asynchttpclient.AsyncCompletionHandler; //导入依赖的package包/类
private void facebookLogin(ChannelHandlerContext ctx, int messageId, String email,
                           String token, Version version) {
    asyncHttpClient.prepareGet(URL + token)
            .execute(new AsyncCompletionHandler<Response>() {
                @Override
                public Response onCompleted(Response response) throws Exception {
                    if (response.getStatusCode() != 200) {
                        String errMessage = response.getResponseBody();
                        if (errMessage != null && errMessage.contains("expired")) {
                            log.warn("Facebook token expired for user {}.", email);
                        } else {
                            log.warn("Error getting facebook token for user {}. Reason : {}", email, errMessage);
                        }
                        ctx.writeAndFlush(notAllowed(messageId), ctx.voidPromise());
                        return response;
                    }

                    try {
                        String responseBody = response.getResponseBody();
                        FacebookTokenResponse facebookTokenResponse =
                                JsonParser.parseFacebookTokenResponse(responseBody);
                        if (email.equalsIgnoreCase(facebookTokenResponse.email)) {
                            User user = holder.userDao.getByName(email, AppNameUtil.BLYNK);
                            if (user == null) {
                                user = holder.userDao.addFacebookUser(email, AppNameUtil.BLYNK);
                            }

                            login(ctx, messageId, user, version);
                        }
                    } catch (Exception e) {
                        log.error("Error during facebook response parsing for user {}. Reason : {}",
                                email, response.getResponseBody());
                        ctx.writeAndFlush(notAllowed(messageId), ctx.voidPromise());
                    }

                    return response;
                }

                @Override
                public void onThrowable(Throwable t) {
                    log.error("Error performing facebook request. Token {} for user {}. Reason : {}",
                            token, email, t.getMessage());
                    ctx.writeAndFlush(notAllowed(messageId), ctx.voidPromise());
                }
            });
}
 
开发者ID:blynkkk,项目名称:blynk-server,代码行数:47,代码来源:AppLoginHandler.java



注:本文中的org.asynchttpclient.AsyncCompletionHandler类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java NodeKey类代码示例发布时间:2022-05-22
下一篇:
Java JobTaskAttemptCompletedEvent类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap