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.