this.client = client;
}
@Override
public <T> Future<T> executeAsync(final Request<T> request, final Map<String,String> extraHeaders, final String apiKey) {
final AsyncWebResource resource = client.asyncResource(ENDPOINT.value + request.getEndpoint());
resource.addFilter(new HTTPBasicAuthFilter("", apiKey));
final AsyncWebResource.Builder builder = resource.getRequestBuilder();
builder.header(request.getResponseType().getHeaderName(), request.getResponseType().getHeaderValue());
builder.header(Heroku.ApiVersion.HEADER, String.valueOf(Heroku.ApiVersion.v2.version));
builder.header(Http.UserAgent.LATEST.getHeaderName(), Http.UserAgent.LATEST.getHeaderValue("jersey-client"));
for (Map.Entry<String, String> header : request.getHeaders().entrySet()) {