@Override public URI getURI() { return this.httpRequest.getURI(); }
@Override public URI getURI() { return this.httpRequest.getURI(); }
@Override public URI getURI() { return this.httpRequest.getURI(); }
@Override public URI getURI() { return this.httpRequest.getURI(); }
@Override public URI getURI() { return this.httpRequest.getURI(); }
@Override public URI getURI() { return this.httpRequest.getURI(); }
@Override public String getRequestUrl() { return request.getURI().toString(); }
HttpGet httpget = new HttpGet(url); HttpContext context = new BasicHttpContext(); HttpResponse response = httpClient.execute(httpget, context); if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) throw new IOException(response.getStatusLine().toString()); HttpUriRequest currentReq = (HttpUriRequest) context.getAttribute( ExecutionContext.HTTP_REQUEST); HttpHost currentHost = (HttpHost) context.getAttribute( ExecutionContext.HTTP_TARGET_HOST); String currentUrl = (currentReq.getURI().isAbsolute()) ? currentReq.getURI().toString() : (currentHost.toURI() + currentReq.getURI());
private String getRealUrl(HttpContext httpContext){ Object target = httpContext.getAttribute(HttpCoreContext.HTTP_TARGET_HOST); Object reqUri = httpContext.getAttribute(HttpCoreContext.HTTP_REQUEST); if (target==null||reqUri==null){ return null; } HttpHost t = (HttpHost) target; HttpUriRequest r = (HttpUriRequest)reqUri; return r.getURI().isAbsolute()?r.getURI().toString():t.toString()+r.getURI().toString(); } }
private HttpHost determineTarget(HttpUriRequest request) { // A null target may be acceptable if there is a default target. // Otherwise, the null target is detected in the director. HttpHost target = null; URI requestURI = request.getURI(); if (requestURI.isAbsolute()) { target = new HttpHost( requestURI.getHost(), requestURI.getPort(), requestURI.getScheme()); } return target; }
private HttpResponse execute(HttpUriRequest hr, DefaultHttpClient client, HttpContext context) throws ClientProtocolException, IOException{ HttpResponse response = null; if(hr.getURI().getAuthority().contains("_")) { URL urlObj = hr.getURI().toURL(); HttpHost host; if(urlObj.getPort() == -1) { host = new HttpHost(urlObj.getHost(), 80, urlObj.getProtocol()); } else { host = new HttpHost(urlObj.getHost(), urlObj.getPort(), urlObj.getProtocol()); } response = client.execute(host, hr, context); } else { response = client.execute(hr, context); } return response; }
private static String getErrorMessage(HttpUriRequest request, CloseableHttpResponse response) { String controllerHost = null; String controllerVersion = null; if (response.containsHeader(CommonConstants.Controller.HOST_HTTP_HEADER)) { controllerHost = response.getFirstHeader(CommonConstants.Controller.HOST_HTTP_HEADER).getValue(); controllerVersion = response.getFirstHeader(CommonConstants.Controller.VERSION_HTTP_HEADER).getValue(); } StatusLine statusLine = response.getStatusLine(); String reason; try { reason = JsonUtils.stringToJsonNode(EntityUtils.toString(response.getEntity())).get("error").asText(); } catch (Exception e) { reason = "Failed to get reason"; } String errorMessage = String.format("Got error status code: %d (%s) with reason: \"%s\" while sending request: %s", statusLine.getStatusCode(), statusLine.getReasonPhrase(), reason, request.getURI()); if (controllerHost != null) { errorMessage = String.format("%s to controller: %s, version: %s", errorMessage, controllerHost, controllerVersion); } return errorMessage; }
/** * Throws if not ok */ private void handleStatus( HttpUriRequest method, StatusLine statusLine, int status ) throws KettleException { if ( status >= 300 ) { String message; if ( status == HttpStatus.SC_NOT_FOUND ) { message = String.format( "%s%s%s%s", BaseMessages.getString( PKG, "SlaveServer.Error.404.Title" ), Const.CR, Const.CR, BaseMessages.getString( PKG, "SlaveServer.Error.404.Message" ) ); } else { message = String.format( "HTTP Status %d - %s - %s", status, method.getURI().toString(), statusLine.getReasonPhrase() ); } throw new KettleException( message ); } }
private SimpleHttpResponse sendRequest(HttpUriRequest request) throws IOException, HttpErrorStatusException { try (CloseableHttpResponse response = _httpClient.execute(request)) { String controllerHost = null; String controllerVersion = null; if (response.containsHeader(CommonConstants.Controller.HOST_HTTP_HEADER)) { controllerHost = response.getFirstHeader(CommonConstants.Controller.HOST_HTTP_HEADER).getValue(); controllerVersion = response.getFirstHeader(CommonConstants.Controller.VERSION_HTTP_HEADER).getValue(); } if (controllerHost != null) { LOGGER.info(String .format("Sending request: %s to controller: %s, version: %s", request.getURI(), controllerHost, controllerVersion)); } int statusCode = response.getStatusLine().getStatusCode(); if (statusCode >= 300) { throw new HttpErrorStatusException(getErrorMessage(request, response), statusCode); } return new SimpleHttpResponse(statusCode, EntityUtils.toString(response.getEntity())); } }
@Test public void shouldFindLastRequestMade() throws Exception { FakeHttp.addPendingHttpResponse(200, "a happy response body"); FakeHttp.addPendingHttpResponse(200, "a happy response body"); FakeHttp.addPendingHttpResponse(200, "a happy response body"); DefaultHttpClient client = new DefaultHttpClient(); client.execute(new HttpGet("http://www.first.org")); client.execute(new HttpGet("http://www.second.org")); client.execute(new HttpGet("http://www.third.org")); assertThat(((HttpUriRequest) FakeHttp.getLatestSentHttpRequest()).getURI()) .isEqualTo(URI.create("http://www.third.org")); }
@Override protected String sendAndReturn(final HttpUriRequest request) throws IOException { final HttpResponseFactory factory = new DefaultHttpResponseFactory(); final HttpResponse response = factory.newHttpResponse( new BasicStatusLine(HttpVersion.HTTP_1_1, this.status, null), null); final StringBuilder sb = new StringBuilder(); sb.append(String.format("%s = %s;", "METHOD", request.getMethod())); sb.append(String.format("%s = %s;", "URI", request.getURI())); final HttpEntity entity = ((HttpEntityEnclosingRequestBase) request).getEntity(); sb.append(String.format("%s = %s;", "BODY", EntityUtils.toString(entity))); response.setEntity(new StringEntity(sb.toString())); return parseResponse(response); }
@Test public void shouldSupportBasicResponseHandlerHandleResponse() throws Exception { FakeHttp.addPendingHttpResponse(200, "OK", new BasicHeader("Content-Type", "text/plain")); DefaultHttpClient client = new DefaultHttpClient(); HttpResponse response = client.execute(new HttpGet("http://www.nowhere.org")); assertThat(((HttpUriRequest) FakeHttp.getSentHttpRequest(0)).getURI()) .isEqualTo(URI.create("http://www.nowhere.org")); Assert.assertNotNull(response); String responseStr = new BasicResponseHandler().handleResponse(response); Assert.assertEquals("OK", responseStr); }
@Test public void shouldHandleMultipleInvocationsOfExecute() throws Exception { FakeHttp.addPendingHttpResponse(200, "a happy response body"); FakeHttp.addPendingHttpResponse(201, "another happy response body"); requestDirector.execute(null, new HttpGet("http://example.com"), null); requestDirector.execute(null, new HttpGet("www.example.com"), null); HttpUriRequest request1 = (HttpUriRequest) FakeHttp.getSentHttpRequest(0); assertThat(request1.getMethod()).isEqualTo(HttpGet.METHOD_NAME); assertThat(request1.getURI()).isEqualTo(URI.create("http://example.com")); HttpUriRequest request2 = (HttpUriRequest) FakeHttp.getSentHttpRequest(1); assertThat(request2.getMethod()).isEqualTo(HttpGet.METHOD_NAME); assertThat(request2.getURI()).isEqualTo(URI.create("www.example.com")); }
@Override protected void fillHttpOutputData(Schema httpOutputSchema, GenericRecord outputRecord, HttpUriRequest rawRequest, ResponseStatus status) throws IOException { ApacheHttpResponseStatus apacheStatus = (ApacheHttpResponseStatus) status; HttpRequestResponseRecord record = new HttpRequestResponseRecord(); record.setRequestUrl(rawRequest.getURI().toASCIIString()); record.setMethod(rawRequest.getMethod()); record.setStatusCode(apacheStatus.getStatusCode()); record.setContentType(apacheStatus.getContentType()); record.setBody(apacheStatus.getContent() == null? null: ByteBuffer.wrap(apacheStatus.getContent())); outputRecord.put(HTTP_REQUEST_RESPONSE_FIELD, record); } }