Search in sources :

Example 1 with AsyncClientHttpRequest

use of org.springframework.http.client.AsyncClientHttpRequest in project spring-framework by spring-projects.

the class AsyncRestTemplate method doExecute.

/**
	 * Execute the given method on the provided URI. The
	 * {@link org.springframework.http.client.ClientHttpRequest}
	 * is processed using the {@link RequestCallback}; the response with
	 * the {@link ResponseExtractor}.
	 * @param url the fully-expanded URL to connect to
	 * @param method the HTTP method to execute (GET, POST, etc.)
	 * @param requestCallback object that prepares the request (can be {@code null})
	 * @param responseExtractor object that extracts the return value from the response (can
	 * be {@code null})
	 * @return an arbitrary object, as returned by the {@link ResponseExtractor}
	 */
protected <T> ListenableFuture<T> doExecute(URI url, HttpMethod method, AsyncRequestCallback requestCallback, ResponseExtractor<T> responseExtractor) throws RestClientException {
    Assert.notNull(url, "'url' must not be null");
    Assert.notNull(method, "'method' must not be null");
    try {
        AsyncClientHttpRequest request = createAsyncRequest(url, method);
        if (requestCallback != null) {
            requestCallback.doWithRequest(request);
        }
        ListenableFuture<ClientHttpResponse> responseFuture = request.executeAsync();
        return new ResponseExtractorFuture<>(method, url, responseFuture, responseExtractor);
    } catch (IOException ex) {
        throw new ResourceAccessException("I/O error on " + method.name() + " request for \"" + url + "\":" + ex.getMessage(), ex);
    }
}
Also used : AsyncClientHttpRequest(org.springframework.http.client.AsyncClientHttpRequest) IOException(java.io.IOException) ClientHttpResponse(org.springframework.http.client.ClientHttpResponse)

Aggregations

IOException (java.io.IOException)1 AsyncClientHttpRequest (org.springframework.http.client.AsyncClientHttpRequest)1 ClientHttpResponse (org.springframework.http.client.ClientHttpResponse)1