@Override protected ApacheHttpRequestBuilder createRequestBuilder(Config config) { String urlTemplate = config.getString(HttpConstants.URL_TEMPLATE); String verb = config.getString(HttpConstants.VERB); String contentType = config.getString(HttpConstants.CONTENT_TYPE); return new ApacheHttpRequestBuilder(urlTemplate, verb, contentType); }
@Override public ApacheHttpRequest<GenericRecord> buildRequest(Queue<BufferedRecord<GenericRecord>> buffer) { return buildWriteRequest(buffer.poll()); }
public ApacheHttpRequestBuilder(String urlTemplate, String verb, String contentType) { this.urlTemplate = urlTemplate; this.verb = verb; this.contentType = createContentType(contentType); }
/** * Build a {@link HttpUriRequest} from a {@link GenericRecord} */ public void testBuildWriteRequest() throws IOException { String urlTemplate = "http://www.test.com/a/part1:${part1}/a/part2:${part2}"; String verb = "post"; ApacheHttpRequestBuilder builder = spy(new ApacheHttpRequestBuilder(urlTemplate, verb, "application/json")); ArgumentCaptor<RequestBuilder> requestBuilderArgument = ArgumentCaptor.forClass(RequestBuilder.class); Queue<BufferedRecord<GenericRecord>> queue = HttpTestUtils.createQueue(1, false); AsyncRequest<GenericRecord, HttpUriRequest> request = builder.buildRequest(queue); verify(builder).build(requestBuilderArgument.capture()); RequestBuilder expected = RequestBuilder.post(); expected.setUri("http://www.test.com/a/part1:01/a/part2:02?param1=01"); String payloadStr = "{\"id\":\"id0\"}"; expected.addHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.getMimeType()) .setEntity(new StringEntity(payloadStr, ContentType.APPLICATION_JSON)); // Compare HttpUriRequest HttpTestUtils.assertEqual(requestBuilderArgument.getValue(), expected); Assert.assertEquals(request.getRecordCount(), 1); Assert.assertEquals(queue.size(), 0); } }
int bytesWritten = addPayload(builder, httpOperation.getBody()); if (bytesWritten == -1) { throw new RuntimeException("Fail to write payload into request"); request.setRawRequest(build(builder)); request.markRecord(record, bytesWritten); return request;
int bytesWritten = addPayload(builder, httpOperation.getBody()); if (bytesWritten == -1) { throw new RuntimeException("Fail to write payload into request"); request.setRawRequest(build(builder)); request.markRecord(record, bytesWritten); return request;
@Override public AvroHttpWriterBuilder fromConfig(Config config) { config = config.withFallback(FALLBACK); ApacheHttpClient client = new ApacheHttpClient(HttpClientBuilder.create(), config, broker); this.client = client; String urlTemplate = config.getString(HttpConstants.URL_TEMPLATE); String verb = config.getString(HttpConstants.VERB); String contentType = config.getString(HttpConstants.CONTENT_TYPE); this.asyncRequestBuilder = new ApacheHttpRequestBuilder(urlTemplate, verb, contentType); Set<String> errorCodeWhitelist = HttpUtils.getErrorCodeWhitelist(config); this.responseHandler = new ApacheHttpResponseHandler(errorCodeWhitelist); return this; } }
@Override public ApacheHttpRequest<GenericRecord> buildRequest(Queue<BufferedRecord<GenericRecord>> buffer) { return buildWriteRequest(buffer.poll()); }
public ApacheHttpRequestBuilder(String urlTemplate, String verb, String contentType) { this.urlTemplate = urlTemplate; this.verb = verb; this.contentType = createContentType(contentType); }
@Override protected ApacheHttpRequestBuilder createRequestBuilder(Config config) { String urlTemplate = config.getString(HttpConstants.URL_TEMPLATE); String verb = config.getString(HttpConstants.VERB); String contentType = config.getString(HttpConstants.CONTENT_TYPE); return new ApacheHttpRequestBuilder(urlTemplate, verb, contentType); }
@Override public AvroHttpWriterBuilder fromConfig(Config config) { config = config.withFallback(FALLBACK); ApacheHttpClient client = new ApacheHttpClient(HttpClientBuilder.create(), config, broker); this.client = client; String urlTemplate = config.getString(HttpConstants.URL_TEMPLATE); String verb = config.getString(HttpConstants.VERB); String contentType = config.getString(HttpConstants.CONTENT_TYPE); this.asyncRequestBuilder = new ApacheHttpRequestBuilder(urlTemplate, verb, contentType); Set<String> errorCodeWhitelist = HttpUtils.getErrorCodeWhitelist(config); this.responseHandler = new ApacheHttpResponseHandler(errorCodeWhitelist); return this; } }