Java 类org.apache.http.nio.entity.NByteArrayEntity 实例源码
项目:lams
文件:HttpComponentsAsyncClientHttpRequest.java
@Override
protected ListenableFuture<ClientHttpResponse> executeInternal(HttpHeaders headers, byte[] bufferedOutput)
throws IOException {
HttpComponentsClientHttpRequest.addHeaders(this.httpRequest, headers);
if (this.httpRequest instanceof HttpEntityEnclosingRequest) {
HttpEntityEnclosingRequest entityEnclosingRequest = (HttpEntityEnclosingRequest) this.httpRequest;
HttpEntity requestEntity = new NByteArrayEntity(bufferedOutput);
entityEnclosingRequest.setEntity(requestEntity);
}
final HttpResponseFutureCallback callback = new HttpResponseFutureCallback();
final Future<HttpResponse> futureResponse =
this.httpClient.execute(this.httpRequest, this.httpContext, callback);
return new ClientHttpResponseFuture(futureResponse, callback);
}
项目:spring4-understanding
文件:HttpComponentsAsyncClientHttpRequest.java
@Override
protected ListenableFuture<ClientHttpResponse> executeInternal(HttpHeaders headers, byte[] bufferedOutput)
throws IOException {
HttpComponentsClientHttpRequest.addHeaders(this.httpRequest, headers);
if (this.httpRequest instanceof HttpEntityEnclosingRequest) {
HttpEntityEnclosingRequest entityEnclosingRequest = (HttpEntityEnclosingRequest) this.httpRequest;
HttpEntity requestEntity = new NByteArrayEntity(bufferedOutput);
entityEnclosingRequest.setEntity(requestEntity);
}
final HttpResponseFutureCallback callback = new HttpResponseFutureCallback();
final Future<HttpResponse> futureResponse =
this.httpClient.execute(this.httpRequest, this.httpContext, callback);
return new ClientHttpResponseFuture(futureResponse, callback);
}
项目:visor
文件:ChukwaReporter.java
public HttpResponse post(ChukwaRequest chukwaRequest) throws IOException {
httpClient.start();
byte[] payload = chukwaRequest.toByteArray();
final HttpPost httpPost = new HttpPost(uri);
final NByteArrayEntity nByteArrayEntity =
new NByteArrayEntity(payload, ContentType.APPLICATION_OCTET_STREAM);
httpPost.setEntity(nByteArrayEntity);
final Future<HttpResponse> execute = httpClient.execute(httpPost, null);
try {
return execute.get();
} catch (InterruptedException | ExecutionException e) {
throw new IOException(e);
}
}
项目:Tenable.io-SDK-for-Java
文件:AsyncHttpService.java
/**
* Makes an HTTP PUT request using the given URI and optional byte array body and headers.
*
* @param uri the URI to use for the PUT call
* @param contentType The content-type. Use helper function org.apache.http.entity.ContentType.create() to generate
* @param body Optional, can be null. An byte array that will be PUTed as is
* @param headers Optional, can be null. One or more HTTP headers, typically created by instancing org.apache.http.message.BasicHeader
* @return the resulting HttpFuture instance
*/
public HttpFuture doPut( URI uri, ContentType contentType, byte[] body, Header[] headers ) {
HttpPut httpPut = new HttpPut( uri );
if( body != null ) {
httpPut.setEntity( new NByteArrayEntity( body, contentType ) );
}
if( headers != null && headers.length > 0 )
httpPut.setHeaders( headers );
return new HttpFuture( this, httpPut, asyncClient.execute( httpPut, null ), null );
}
项目:yuzhouwan
文件:ESUtils.java
public static HttpEntity createEntity(String json) {
try {
byte[] bytes = SMILE_MAPPER.writeValueAsBytes(SMILE_MAPPER.readValue(json, Object.class));
return new NByteArrayEntity(bytes, ContentType.create(APPLICATION_JACKSON_SMILE));
} catch (Exception e) {
LOG.error("Cannot create entity, due to {}!", e);
throw new RuntimeException("Cannot create entity!", e);
}
}
项目:rapidoid
文件:HttpClientUtil.java
private static NByteArrayEntity byteBody(HttpReq config) {
NByteArrayEntity entity = new NByteArrayEntity(config.body());
if (config.contentType() != null) {
entity.setContentType(config.contentType());
}
return entity;
}
项目:restendpoint
文件:HttpClientRestEndpoint.java
private HttpPost buildMultipartRequest(URI uri, MultiPartRequest request) throws RestEndpointIOException {
HttpPost post = new HttpPost(uri);
try {
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
for (MultiPartRequest.MultiPartSerialized<?> serializedPart : request.getSerializedRQs()) {
Serializer serializer = getSupportedSerializer(serializedPart);
builder.addPart(serializedPart.getPartName(),
new StringBody(new String(serializer.serialize(serializedPart.getRequest()), Charsets.UTF_8),
ContentType.parse(serializer.getMimeType())));
}
for (MultiPartRequest.MultiPartBinary partBinaty : request.getBinaryRQs()) {
builder.addPart(
partBinaty.getPartName(),
new InputStreamBody(partBinaty.getData().openBufferedStream(),
ContentType.parse(partBinaty.getContentType()),
partBinaty
.getFilename())
);
}
/* Here is some dirty hack to avoid problem with MultipartEntity and asynchronous http client
* Details can be found here: http://comments.gmane.org/gmane.comp.apache.httpclient.user/2426
*
* The main idea is to replace MultipartEntity with NByteArrayEntity once first
* doesn't support #getContent method
* which is required for async client implementation. So, we are copying response
* body as byte array to NByteArrayEntity to
* leave it unmodified.
*
* Alse we need to add boundary value to content type header. Details are here:
* http://en.wikipedia.org/wiki/Delimiter#Content_boundary
* MultipartEntity generates correct header by yourself, but we need to put it
* manually once we replaced entity type to NByteArrayEntity
*/
String boundary = "-------------" + UUID.randomUUID().toString();
builder.setBoundary(boundary);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
builder.build().writeTo(baos);
post.setEntity(new NByteArrayEntity(baos.toByteArray(), ContentType.MULTIPART_FORM_DATA));
post.setHeader("Content-Type", "multipart/form-data;boundary=" + boundary);
} catch (Exception e) {
throw new RestEndpointIOException("Unable to build post multipart request", e);
}
return post;
}