@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; } }
/** * 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); } }
@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; } }