use of org.apache.hc.client5.http.async.methods.SimpleHttpResponse in project weicoder by wdcode.
the class HttpAsyncClient method download.
/**
* 下载文件
*
* @param url get提交地址
* @param callback 回调结果
*/
public static void download(String url, final CallbackVoid<byte[]> callback) {
// 声明HttpGet对象
HttpGet get = null;
try {
// 获得HttpGet对象
get = new HttpGet(url);
get.addHeader(new BasicHeader(HttpConstants.CONTENT_TYPE_KEY, HttpConstants.CONTENT_TYPE_VAL));
// 执行get
CLIENT.execute(SimpleRequestBuilder.copy(get).build(), new FutureCallback<SimpleHttpResponse>() {
@Override
public void failed(Exception ex) {
LOG.error(ex);
}
@Override
public void completed(SimpleHttpResponse result) {
if (callback != null)
callback.callback(result.getBodyBytes());
}
@Override
public void cancelled() {
}
});
} catch (Exception e) {
LOG.error(e);
}
}
use of org.apache.hc.client5.http.async.methods.SimpleHttpResponse in project bender by Nextdoor.
the class Http2Transport method sendBatch.
public void sendBatch(byte[] raw) throws TransportException {
/*
* Wrap the call with retry logic to avoid intermittent ES issues.
*/
Callable<SimpleHttpResponse> callable = () -> {
SimpleHttpResponse resp;
String responseString = null;
SimpleRequestBuilder rb = SimpleRequestBuilder.post().setHttpHost(this.target).setPath(this.url.getPath());
/*
* Do the call, read response, release connection so it is available for use again, and
* finally check the response.
*/
if (this.useGzip) {
rb = rb.addHeader("Accept-Encoding", "gzip");
resp = execute(rb, raw, ContentType.DEFAULT_BINARY);
} else {
resp = execute(rb, raw, getUncompressedContentType());
}
responseString = resp.getBodyText();
if (responseString == null || responseString == "") {
responseString = "Empty Reponse";
}
checkResponse(resp, responseString);
return resp;
};
RetryConfig config = new RetryConfigBuilder().retryOnSpecificExceptions(TransportException.class).withMaxNumberOfTries(this.retries + 1).withDelayBetweenTries(this.retryDelayMs, ChronoUnit.MILLIS).withExponentialBackoff().build();
try {
new CallExecutor(config).execute(callable);
} catch (RetriesExhaustedException ree) {
logger.warn("transport failed after " + ree.getCallResults().getTotalTries() + " tries.");
throw new TransportException(ree.getCallResults().getLastExceptionThatCausedRetry());
} catch (UnexpectedException ue) {
throw new TransportException(ue);
}
}
Aggregations