See: Description
Package | Description |
---|---|
com.oracle.httpclient |
HTTP Client API
|
HTTP Client API is a Java based framework for communication with Web Services.
HTTP Client provides the following capabilities:
The following code illustrates typical scheme of creating and configuring a client request:
// default client builder HttpClientBuilder clientBuilder = HttpClientBuilder.getInstance(); // additional configuration of client builder clientBuilder.addRequestFilter(new UserRequestFilter()); clientBuilder.addResponseFilter(new UserResponseFilter()); // additional connection option ConnectionOption<Integer> timeoutOption = new ConnectionOption<>("Timeout", 2000); clientBuilder.addConnectionOptions(timeoutOption); // configured client instance // client instance is the main entry point which is used for preparing client requests. HttpClient client = clientBuilder.build(); // construct request builder HttpRequestBuilder requestBuilder = client.build("http://example.org"); requestBuilder.setHeader(HttpHeader.ACCEPT, "text/plain"); requestBuilder.setMethod(HttpMethod.GET); // prepared client request is ready for execution HttpRequest request = requestBuilder.build();
HTTP Client API supports fluent API model. The above code can be written as follows:
HttpClient client = HttpClientBuilder.getInstance() .addRequestFilter(new UserRequestFilter()) .addResponseFilter(new UserResponseFilter()) .addConnectionOptions(new ConnectionOption<>("Timeout", 2000)) .build(); HttpRequest request = client.build("http://example.org") .setHeader(HttpHeader.ACCEPT, "text/plain") .setMethod(HttpMethod.GET) .build();
HTTP Client API allows to use synchronous or asynchronous execution of a client request. The following example illustrates the synchronous(blocking) execution of a request:
HttpResponse response = clientRequest.invoke(); if (HttpResponse.OK == response.getResponseCode()) { // handle the response }
Client application must provide a HttpResponseListener implementation in case of asynchronous execution of a request:
clientRequest.invoke( new HttpResponseListener() { @Override public void handle(HttpResponse response) { // handle the response } @Override public void failed(HttpClientException cause) { // handle the exception } });
Filters are used in order to provide capabilities as logging, authentication, etc. Filters can be registered the following manner:
public class UserAgentFilter implements HttpRequestFilter { private final String userAgent; public UserAgentFilter() { userAgent = "Profile/" + System.getProperty("microedition.profiles") + " Configuration/" + System.getProperty("microedition.configuration"); } @Override public void filter(ProcessedHttpRequest request, HttpRequestProcessingContext processingContext) { if (!request.getHeaders().contains(HttpHeader.USER_AGENT)) { request.getHeaders().setHeaderValue(HttpHeader.USER_AGENT, userAgent); } } } HttpClientBuilder clientBuilder = HttpClientBuilder.getInstance() .addRequestFilter(new UserAgentFilter());
Copyright © 2013, 2014, Oracle and/or its affiliates. All rights reserved.