use of org.asynchttpclient.Response in project async-http-client by AsyncHttpClient.
the class AsyncHttpObservableTest method testObserveMultiple.
@Test(groups = "standalone")
public void testObserveMultiple() {
final TestSubscriber<Response> tester = new TestSubscriber<>();
try (AsyncHttpClient client = asyncHttpClient()) {
Observable<Response> o1 = AsyncHttpObservable.observe(() -> client.prepareGet("http://gatling.io"));
Observable<Response> o2 = AsyncHttpObservable.observe(() -> client.prepareGet("http://www.wisc.edu").setFollowRedirect(true));
Observable<Response> o3 = AsyncHttpObservable.observe(() -> client.prepareGet("http://www.umn.edu").setFollowRedirect(true));
Observable<Response> all = Observable.merge(o1, o2, o3);
all.subscribe(tester);
tester.awaitTerminalEvent();
tester.assertTerminalEvent();
tester.assertNoErrors();
tester.assertCompleted();
List<Response> responses = tester.getOnNextEvents();
assertNotNull(responses);
assertEquals(responses.size(), 3);
for (Response response : responses) {
assertEquals(response.getStatusCode(), 200);
}
} catch (Exception e) {
Thread.currentThread().interrupt();
}
}
use of org.asynchttpclient.Response in project async-http-client by AsyncHttpClient.
the class AsyncHttpSingleTest method testAbort.
@Test(groups = "standalone")
public void testAbort() throws Exception {
final TestSubscriber<Response> subscriber = new TestSubscriber<>();
try (AsyncHttpClient client = asyncHttpClient()) {
final Single<Response> underTest = AsyncHttpSingle.create(client.prepareGet("http://gatling.io"), () -> new AsyncCompletionHandlerBase() {
@Override
public State onStatusReceived(HttpResponseStatus status) {
return State.ABORT;
}
});
underTest.subscribe(subscriber);
subscriber.awaitTerminalEvent();
}
subscriber.assertTerminalEvent();
subscriber.assertNoErrors();
subscriber.assertCompleted();
subscriber.assertValue(null);
}
use of org.asynchttpclient.Response in project async-http-client by AsyncHttpClient.
the class SimpleAsyncHttpClient method execute.
private Future<Response> execute(RequestBuilder rb, BodyConsumer bodyConsumer, ThrowableHandler throwableHandler) throws IOException {
if (throwableHandler == null) {
throwableHandler = defaultThrowableHandler;
}
Request request = rb.build();
ProgressAsyncHandler<Response> handler = new BodyConsumerAsyncHandler(bodyConsumer, throwableHandler, errorDocumentBehaviour, request.getUri(), listener);
if (resumeEnabled && request.getMethod().equals("GET") && bodyConsumer != null && bodyConsumer instanceof ResumableBodyConsumer) {
ResumableBodyConsumer fileBodyConsumer = (ResumableBodyConsumer) bodyConsumer;
long length = fileBodyConsumer.getTransferredBytes();
fileBodyConsumer.resume();
handler = new ResumableBodyConsumerAsyncHandler(length, handler);
}
return getAsyncHttpClient().executeRequest(request, handler);
}
use of org.asynchttpclient.Response in project async-http-client by AsyncHttpClient.
the class ProxyTest method testProxyProperties.
// @Test(groups = "standalone")
public void testProxyProperties() throws IOException, ExecutionException, TimeoutException, InterruptedException {
// FIXME not threadsafe!
Properties originalProps = new Properties();
originalProps.putAll(System.getProperties());
System.setProperty(ProxyUtils.PROXY_HOST, "127.0.0.1");
System.setProperty(ProxyUtils.PROXY_PORT, String.valueOf(port1));
System.setProperty(ProxyUtils.PROXY_NONPROXYHOSTS, "localhost");
AsyncHttpClientConfigHelper.reloadProperties();
try (AsyncHttpClient client = asyncHttpClient(config().setUseProxyProperties(true))) {
String proxifiedtarget = "http://127.0.0.1:1234/";
Future<Response> f = client.prepareGet(proxifiedtarget).execute();
Response resp = f.get(3, TimeUnit.SECONDS);
assertNotNull(resp);
assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK);
assertEquals(resp.getHeader("target"), "/");
String nonProxifiedtarget = "http://localhost:1234/";
f = client.prepareGet(nonProxifiedtarget).execute();
try {
resp = f.get(3, TimeUnit.SECONDS);
fail("should not be able to connect");
} catch (ExecutionException e) {
// ok, no proxy used
}
} finally {
System.setProperties(originalProps);
}
}
use of org.asynchttpclient.Response in project async-http-client by AsyncHttpClient.
the class ProxyTest method testGlobalProxy.
@Test(groups = "standalone")
public void testGlobalProxy() throws IOException, ExecutionException, TimeoutException, InterruptedException {
try (AsyncHttpClient client = asyncHttpClient(config().setProxyServer(proxyServer("localhost", port1)))) {
String target = "http://localhost:1234/";
Future<Response> f = client.prepareGet(target).execute();
Response resp = f.get(3, TimeUnit.SECONDS);
assertNotNull(resp);
assertEquals(resp.getStatusCode(), HttpServletResponse.SC_OK);
assertEquals(resp.getHeader("target"), "/");
}
}
Aggregations