private ContentProvider getBytesProvider(final ClientRequest clientRequest) { final Object entity = clientRequest.getEntity(); if (entity == null) { return null; } final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); clientRequest.setStreamProvider(new OutboundMessageContext.StreamProvider() { @Override public OutputStream getOutputStream(final int contentLength) throws IOException { return outputStream; } }); try { clientRequest.writeEntity(); } catch (final IOException e) { throw new ProcessingException("Failed to write request entity.", e); } return new BytesContentProvider(outputStream.toByteArray()); }
proxyRequest.content(new BytesContentProvider(avaticaQuery)); try { byte[] bytes = objectMapper.writeValueAsBytes(query); proxyRequest.content(new BytesContentProvider(bytes)); proxyRequest.getHeaders().put(HttpHeader.CONTENT_LENGTH, String.valueOf(bytes.length));
public RESPONSE callSynchronous(Message request, OrangeContext orangeContext) throws RpcCallException { HttpClientWrapper clientWrapper = loadBalancer.getHttpClientWrapper(); HttpRequestWrapper balancedPost = clientWrapper.createHttpPost(this); //set custom headers if (orangeContext != null) { orangeContext.getProperties().forEach(balancedPost::setHeader); } balancedPost.setHeader("Content-type", TYPE_OCTET); //TODO: fix: Temporary workaround below until go services are more http compliant balancedPost.setHeader("Connection", "close"); ProtobufRpcRequest pbRequest = new ProtobufRpcRequest(methodName, request); byte[] protobufData = pbRequest.getProtobufData(); balancedPost.setContentProvider(new BytesContentProvider(protobufData)); logger.debug("Sending request of size {}", protobufData.length); ContentResponse rpcResponse = clientWrapper.execute(balancedPost, new ProtobufRpcCallExceptionDecoder(), orangeContext); byte[] data = rpcResponse.getContent(); logger.debug("Received a proto response of size: {}", data.length); return ProtobufUtil.byteArrayToProtobuf( new ProtobufRpcResponse(data).getPayloadData(), responseClass); }
request.content(new BytesContentProvider(os.toByteArray()));
new BytesContentProvider( new ProtobufRpcRequest("test", EmptyMessage.getDefaultInstance()).getProtobufData()
client.newRequest(url) .content(new BytesContentProvider("batman".getBytes()), "text/plain") .send();
public void setRequestContent(byte[] byteArray) { this.request.content(new BytesContentProvider(byteArray), this.requestContentType); }
private ContentProvider getBytesProvider(final ClientRequest clientRequest) { final Object entity = clientRequest.getEntity(); if (entity == null) { return null; } final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); clientRequest.setStreamProvider(new OutboundMessageContext.StreamProvider() { @Override public OutputStream getOutputStream(final int contentLength) throws IOException { return outputStream; } }); try { clientRequest.writeEntity(); } catch (final IOException e) { throw new ProcessingException("Failed to write request entity.", e); } return new BytesContentProvider(outputStream.toByteArray()); }
private Request prepareRequest(HttpRequest request) { Request httpRequest = httpClient.newRequest(request.getUri()) .timeout(metadata.getReadTimeout(), TimeUnit.MILLISECONDS) .method(request.getHttpMethod().method()); byte[] entity = request.getEntity(); if(entity != null){ httpRequest = httpRequest.content(new BytesContentProvider(entity),request.getContentType()); } Joiner joiner = Joiner.on(",").skipNulls(); Map<String, Collection<String>> headers = request.getHeaders(); for (Map.Entry<String, Collection<String>> stringCollectionEntry : headers.entrySet()) { String key = stringCollectionEntry.getKey(); Collection<String> stringCollection = stringCollectionEntry.getValue(); String value = joiner.join(stringCollection); httpRequest = httpRequest.header(key, value); } for (Map.Entry<String, Collection<String>> stringCollectionEntry : request.getQueryParams().entrySet()) { String key = stringCollectionEntry.getKey(); Collection<String> stringCollection = stringCollectionEntry.getValue(); String value = joiner.join(stringCollection); httpRequest = httpRequest.param(key, value); } return httpRequest; } }
proxyRequest.content(new BytesContentProvider(avaticaQuery)); final ObjectMapper objectMapper = (ObjectMapper) clientRequest.getAttribute(OBJECTMAPPER_ATTRIBUTE); try { proxyRequest.content(new BytesContentProvider(objectMapper.writeValueAsBytes(query)));
proxyRequest.content(new BytesContentProvider(avaticaQuery)); try { byte[] bytes = objectMapper.writeValueAsBytes(query); proxyRequest.content(new BytesContentProvider(bytes)); proxyRequest.getHeaders().put(HttpHeader.CONTENT_LENGTH, String.valueOf(bytes.length));
Request request = http.POST(host).content(new BytesContentProvider(list.toArray(new byte[0][0]))); FutureResponseListener listener = new FutureResponseListener(request);
@Override public InputStream sendMessage(byte[] message) throws IOException { try { Request request = httpClient.newRequest(url) .method(HttpMethod.POST) .header(HttpHeader.CONTENT_TYPE, "application/octet-stream") .header(HttpHeader.ACCEPT_ENCODING, "gzip") .content(new BytesContentProvider(message)); addSessionCookie(request); InputStreamResponseListener listener = new InputStreamResponseListener(); request.send(listener); /** * Waits for the given timeout for the response to be available, then returns it. * The wait ends as soon as all the HTTP headers have been received, without waiting for the content. */ Response response = listener.get(readTimeout, TimeUnit.SECONDS); if (response.getStatus() >= 300) { throw new IOException( "Did not receive successful HTTP response: status code = " + response.getStatus() + ", status message = [" + response.getReason() + "]"); } return listener.getInputStream(); } catch (Exception e) { if (e instanceof InterruptedException) { Thread.currentThread().interrupt(); } throw new IOException("Exception while sending message", e); } }
Request buildRequest(Message message, URI uri) { Request request = client.newRequest(uri) .method(HttpMethod.POST) .header(HttpHeader.KEEP_ALIVE.toString(), "true") .header(MESSAGE_ID.getName(), message.getId()) .header(RETRY_COUNT.getName(), Integer.toString(message.getRetryCounter())) .header(HttpHeader.CONTENT_TYPE.toString(), contentTypeToMediaType.apply(message.getContentType())) .timeout(timeout, TimeUnit.MILLISECONDS) .content(new BytesContentProvider(message.getData())); message.getSchema().ifPresent(schema -> request.header(SCHEMA_VERSION.getName(), valueOf(schema.getVersion().value()))); authorizationProvider.ifPresent(p -> p.authorizationToken() .ifPresent(token -> request.header(HttpHeader.AUTHORIZATION.toString(), token))); metadataAppender.append(request, message); message.getAdditionalHeaders().forEach(header -> request.header(header.getName(), header.getValue())); return request; } }
Request buildRequest(Message message, URI uri) { Request request = client.newRequest(uri) .method(HttpMethod.POST) .header(HttpHeader.KEEP_ALIVE.toString(), "true") .header(MESSAGE_ID.getName(), message.getId()) .header(RETRY_COUNT.getName(), Integer.toString(message.getRetryCounter())) .header(HttpHeader.CONTENT_TYPE.toString(), contentTypeToMediaType.apply(message.getContentType())) .timeout(timeout, TimeUnit.MILLISECONDS) .content(new BytesContentProvider(message.getData())); message.getSchema().ifPresent(schema -> request.header(SCHEMA_VERSION.getName(), valueOf(schema.getVersion().value()))); authorizationProvider.ifPresent(p -> p.authorizationToken() .ifPresent(token -> request.header(HttpHeader.AUTHORIZATION.toString(), token))); metadataAppender.append(request, message); message.getAdditionalHeaders().forEach(header -> request.header(header.getName(), header.getValue())); return request; } }
@Test public void shouldPutSerializedValueInCache() throws Exception { //when TestClass testClass = new TestClass(); testClass.setName("test"); ContentResponse response = client .POST(String.format("http://localhost:%d/rest/%s/%s", restServer().getPort(), "serialized", "test")) .content(new BytesContentProvider(convertToBytes(testClass))) .header("Content-type", "application/x-java-serialized-object") .send(); InternalCacheEntry<String, byte[]> cacheEntry = getCacheEntry("serialized", "test".getBytes()); TestClass valueFromCache = convertFromBytes(cacheEntry.getValue(), TestClass.class); //then ResponseAssertion.assertThat(response).isOk(); ResponseAssertion.assertThat(response).hasEtag(); Assertions.assertThat(valueFromCache.getName()).isEqualTo("test"); }
void putBinaryValueInCache(String cacheName, String key, byte[] value, MediaType mediaType) throws InterruptedException, ExecutionException, TimeoutException { ContentResponse response = client .newRequest(String.format("http://localhost:%d/rest/%s/%s", restServer().getPort(), cacheName, key)) .content(new BytesContentProvider(value)) .header(HttpHeader.CONTENT_TYPE, mediaType.toString()) .method(HttpMethod.PUT) .send(); ResponseAssertion.assertThat(response).isOk(); }
if (bodySource instanceof StaticBodyGenerator) { StaticBodyGenerator staticBodyGenerator = (StaticBodyGenerator) bodySource; jettyRequest.content(new BytesContentProvider(staticBodyGenerator.getBody())); bytesWritten.addAndGet(staticBodyGenerator.getBody().length);
.content(new BytesContentProvider(jbossMarshalled)) .header(HttpHeader.CONTENT_TYPE, APPLICATION_JBOSS_MARSHALLING_TYPE) .method(HttpMethod.PUT) .content(new BytesContentProvider(jsonMarshalled)) .header(HttpHeader.CONTENT_TYPE, APPLICATION_JSON_TYPE) .method(HttpMethod.PUT) .content(new BytesContentProvider(xmlMarshalled)) .header(HttpHeader.CONTENT_TYPE, APPLICATION_XML_TYPE) .method(HttpMethod.PUT) .content(new BytesContentProvider(javaMarshalled)) .header(HttpHeader.CONTENT_TYPE, APPLICATION_SERIALIZED_OBJECT_TYPE) .method(HttpMethod.PUT)
if (bodyGenerator instanceof StaticBodyGenerator) { StaticBodyGenerator staticBodyGenerator = (StaticBodyGenerator) bodyGenerator; jettyRequest.content(new BytesContentProvider(staticBodyGenerator.getBody()));