Example usage for org.apache.http.client.methods HttpRequestBase getURI

List of usage examples for org.apache.http.client.methods HttpRequestBase getURI

Introduction

In this page you can find the example usage for org.apache.http.client.methods HttpRequestBase getURI.

Prototype

public URI getURI() 

Source Link

Document

Returns the original request URI.

Usage

From source file:com.gsma.mobileconnect.impl.StartAutomatedOperatorDiscoveryTest.java

@Test
public void startAutomatedOperatorDiscovery_withAllOptionsSet_shouldCreateExpectedRequest()
        throws DiscoveryException, RestException, IOException {
    // GIVEN//from   w w  w  .  java 2  s.  c  o  m
    RestClient mockedRestClient = mock(RestClient.class);
    CaptureDiscoveryResponse captureDiscoveryResponse = new CaptureDiscoveryResponse();
    Config config = new Config();

    String exampleJson = buildJsonStr();
    JsonNode expectedJsonObject = buildJsonObject();
    final RestResponse restResponse = new RestResponse(null, 0, null, exampleJson);

    DiscoveryOptions options = new DiscoveryOptions();
    options.setUsingMobileData(false);
    options.setManuallySelect(true);
    options.setLocalClientIP("127.0.0.1");
    options.setIdentifiedMCC("901");
    options.setIdentifiedMNC("01");
    options.setTimeout(333);
    String expectedClientIP = "10.0.0.1";
    options.setClientIP(expectedClientIP);
    String expectedAccept = "application/json";

    String expectedURL = "http://discovery.sandbox.mobileconnect.io/v2/discovery?Manually-Select=true&Identified-MCC=901&Identified-MNC=01&Using-Mobile-Data=false&Local-Client-IP=127.0.0.1&Redirect_URL=http%3A%2F%2Flocalhost%3A8080%2Fmobileconnect";

    final CaptureHttpRequestBase captureHttpRequestBase = new CaptureHttpRequestBase();

    doAnswer(new Answer() {
        public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
            Object[] args = invocationOnMock.getArguments();
            HttpRequestBase requestBase = (HttpRequestBase) args[0];
            captureHttpRequestBase.setValue(requestBase);
            return restResponse;
        }
    }).when(mockedRestClient).callRestEndPoint(any(HttpRequestBase.class), any(HttpClientContext.class),
            eq(options.getTimeout()), Matchers.<List<KeyValuePair>>any());

    IDiscovery discovery = Factory.getDiscovery(null, mockedRestClient);

    // WHEN
    discovery.startAutomatedOperatorDiscovery(config, Config.REDIRECT_URL, options, null,
            captureDiscoveryResponse);

    // THEN
    DiscoveryResponse discoveryResponse = captureDiscoveryResponse.getDiscoveryResponse();
    assertEquals(expectedJsonObject, discoveryResponse.getResponseData());
    HttpRequestBase capturedRequest = captureHttpRequestBase.getValue();
    assertEquals(expectedURL, capturedRequest.getURI().toString());
    assertEquals(expectedClientIP, capturedRequest.getFirstHeader("X-Source-IP").getValue());
    assertEquals(expectedAccept, capturedRequest.getFirstHeader("accept").getValue());
}

From source file:com.mgmtp.perfload.core.client.web.http.DefaultHttpClientManager.java

/**
 * Executes an HTTP request using the internal {@link HttpClient} instance encapsulating the
 * Http response in the returns {@link ResponseInfo} object. This method takes to time
 * measurements around the request execution, one after calling
 * {@link HttpClient#execute(org.apache.http.client.methods.HttpUriRequest, HttpContext)} (~
 * first-byte measurment) and the other one later after the complete response was read from the
 * stream. These measurements are return as properties of the {@link ResponseInfo} object.
 *//*from  w w  w . jav a  2 s  .  c om*/
@Override
public ResponseInfo executeRequest(final HttpRequestBase request, final HttpContext context,
        final UUID requestId) throws IOException {
    request.addHeader(EXECUTION_ID_HEADER, executionId.toString());
    request.addHeader(OPERATION_HEADER, operation);
    request.addHeader(REQUEST_ID_HEADER, requestId.toString());

    String uri = request.getURI().toString();
    String type = request.getMethod();

    TimeInterval tiBeforeBody = new TimeInterval();
    TimeInterval tiTotal = new TimeInterval();

    tiBeforeBody.start();
    tiTotal.start();
    long timestamp = System.currentTimeMillis();

    HttpResponse response = getHttpClient().execute(request, context);
    tiBeforeBody.stop();

    // This actually downloads the response body:
    HttpEntity entity = response.getEntity();
    byte[] body = EntityUtils.toByteArray(entity);
    tiTotal.stop();

    StatusLine statusLine = response.getStatusLine();
    int statusCode = statusLine.getStatusCode();
    String statusMsg = statusLine.getReasonPhrase();
    String responseCharset = EntityUtils.getContentCharSet(entity);
    String contentType = EntityUtils.getContentMimeType(entity);
    String bodyAsString = bodyAsString(contentType, responseCharset, body);

    Header[] headers = response.getAllHeaders();
    Map<String, String> responseHeaders = newHashMapWithExpectedSize(headers.length);
    for (Header header : headers) {
        responseHeaders.put(header.getName(), header.getValue());
    }

    return new ResponseInfo(type, uri, statusCode, statusMsg, responseHeaders, body, bodyAsString,
            responseCharset, contentType, timestamp, tiBeforeBody, tiTotal, executionId, requestId);
}

From source file:com.redhat.jenkins.nodesharing.RestEndpoint.java

private @Nonnull HttpClientContext getAuthenticatingContext(@Nonnull HttpRequestBase method) {
    AuthCache authCache = new BasicAuthCache();
    BasicScheme basicAuth = new BasicScheme();
    authCache.put(URIUtils.extractHost(method.getURI()), basicAuth);

    CredentialsProvider provider = new BasicCredentialsProvider();
    provider.setCredentials(AuthScope.ANY, new org.apache.http.auth.UsernamePasswordCredentials(
            creds.getUsername(), creds.getPassword().getPlainText()));
    HttpClientContext context = HttpClientContext.create();
    context.setCredentialsProvider(provider);
    context.setAuthCache(authCache);/*w w  w  . java2  s. c  o m*/
    return context;
}

From source file:com.gsma.mobileconnect.impl.RequestTokenTest.java

@Test
public void requestToken_withDefaults_shouldCreateExpectedRequest()
        throws OIDCException, DiscoveryResponseExpiredException, IOException, RestException {
    // GIVEN//from w  w w . ja  v  a2 s  .  com
    RestClient mockedRestClient = mock(RestClient.class);
    IOIDC ioidc = Factory.getOIDC(mockedRestClient);
    CaptureRequestTokenResponse captureRequestTokenResponse = new CaptureRequestTokenResponse();
    DiscoveryResponse discoveryResponse = new DiscoveryResponse(true, new Date(Long.MAX_VALUE), 0, null,
            parseJson(OPERATOR_JSON_STRING));

    final CaptureHttpRequestBase captureHttpRequestBase = new CaptureHttpRequestBase();
    final RestResponse restResponse = new RestResponse(null, 0, null, "{}");

    doAnswer(new Answer() {
        public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
            Object[] args = invocationOnMock.getArguments();
            HttpRequestBase requestBase = (HttpRequestBase) args[0];
            captureHttpRequestBase.setValue(requestBase);
            return restResponse;
        }
    }).when(mockedRestClient).callRestEndPoint(any(HttpRequestBase.class), any(HttpClientContext.class),
            eq(30000), Matchers.<List<KeyValuePair>>any());

    // WHEN
    ioidc.requestToken(discoveryResponse, "", "", null, captureRequestTokenResponse);

    // THEN
    HttpRequestBase request = captureHttpRequestBase.getValue();

    assertEquals(TOKEN_HREF, request.getURI().toString());
    assertEquals("POST", request.getMethod());
    assertEquals("application/x-www-form-urlencoded", request.getFirstHeader("Content-Type").getValue());
    assertEquals("application/json", request.getFirstHeader("accept").getValue());

    assertTrue(request instanceof HttpPost);

    HttpPost postRequest = (HttpPost) request;
    List<NameValuePair> contents = URLEncodedUtils.parse(postRequest.getEntity());

    assertEquals("", findValueOfName(contents, "code"));
    assertEquals("authorization_code", findValueOfName(contents, "grant_type"));
    assertEquals("", findValueOfName(contents, "redirect_uri"));
}

From source file:com.gsma.mobileconnect.impl.RequestTokenTest.java

@Test
public void requestToken_withAllOptionsSet_shouldCreateExpectedRequest()
        throws OIDCException, DiscoveryResponseExpiredException, IOException, RestException {
    // GIVEN/*from   www . jav a2  s  . co m*/
    RestClient mockedRestClient = mock(RestClient.class);
    IOIDC ioidc = Factory.getOIDC(mockedRestClient);
    CaptureRequestTokenResponse captureRequestTokenResponse = new CaptureRequestTokenResponse();
    DiscoveryResponse discoveryResponse = new DiscoveryResponse(true, new Date(Long.MAX_VALUE), 0, null,
            parseJson(OPERATOR_JSON_STRING));

    TokenOptions options = new TokenOptions();
    options.setTimeout(333);

    final CaptureHttpRequestBase captureHttpRequestBase = new CaptureHttpRequestBase();
    final RestResponse restResponse = new RestResponse(null, 0, null, "{}");

    doAnswer(new Answer() {
        public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
            Object[] args = invocationOnMock.getArguments();
            HttpRequestBase requestBase = (HttpRequestBase) args[0];
            captureHttpRequestBase.setValue(requestBase);
            return restResponse;
        }
    }).when(mockedRestClient).callRestEndPoint(any(HttpRequestBase.class), any(HttpClientContext.class),
            eq(options.getTimeout()), Matchers.<List<KeyValuePair>>any());

    String expectedRedirectURI = "expected-redirect-uri";
    String expectedCode = "expected-code";

    // WHEN
    ioidc.requestToken(discoveryResponse, expectedRedirectURI, expectedCode, options,
            captureRequestTokenResponse);

    // THEN
    HttpRequestBase request = captureHttpRequestBase.getValue();

    assertEquals(TOKEN_HREF, request.getURI().toString());
    assertEquals("POST", request.getMethod());
    assertEquals("application/x-www-form-urlencoded", request.getFirstHeader("Content-Type").getValue());
    assertEquals("application/json", request.getFirstHeader("accept").getValue());

    assertTrue(request instanceof HttpPost);

    HttpPost postRequest = (HttpPost) request;
    List<NameValuePair> contents = URLEncodedUtils.parse(postRequest.getEntity());

    assertEquals(expectedCode, findValueOfName(contents, "code"));
    assertEquals("authorization_code", findValueOfName(contents, "grant_type"));
    assertEquals(expectedRedirectURI, findValueOfName(contents, "redirect_uri"));
}

From source file:mobi.jenkinsci.alm.assembla.client.AssemblaClient.java

private void setRequestHeaders(final HttpRequestBase req, final boolean autoLogin) {
    if (accessToken != null) {
        req.addHeader("Authorization", "Bearer " + accessToken.access_token);
    }//from ww w .j  a v a2  s  .  c  om
    if (req.getURI().getPath().endsWith(".json")) {
        req.addHeader(HttpHeaders.ACCEPT, "application/json");
    }
}

From source file:com.hoccer.tools.HttpHelper.java

private static HttpResponse executeHTTPMethod(HttpRequestBase pMethod, int pConnectionTimeout)
        throws IOException, HttpClientException, HttpServerException {

    HttpParams httpParams = new BasicHttpParams();
    HttpConnectionParams.setConnectionTimeout(httpParams, pConnectionTimeout);
    HttpConnectionParams.setSoTimeout(httpParams, pConnectionTimeout);
    HttpClientParams.setRedirecting(httpParams, true);

    DefaultHttpClient httpclient = new HttpClientWithKeystore(httpParams);

    // Log redirects
    httpclient.setRedirectHandler(new DefaultRedirectHandler() {
        @Override/* www.j a  v a 2  s  .  c  om*/
        public URI getLocationURI(HttpResponse response, HttpContext context) throws ProtocolException {
            URI uri = super.getLocationURI(response, context);
            return uri;
        }
    });

    HttpResponse response;
    try {
        response = httpclient.execute(pMethod);
    } catch (SocketTimeoutException e) {
        e = new SocketTimeoutException(e.getMessage() + ": " + pMethod.getURI());
        e.fillInStackTrace();
        throw e;
    } catch (SocketException e) {
        e = new SocketException(e.getMessage() + ": " + pMethod.getURI());
        e.fillInStackTrace();
        throw e;
    }
    HttpException.throwIfError(pMethod.getURI().toString(), response);
    return response;
}

From source file:org.thevortex.lighting.jinks.client.WinkClient.java

/**
 * Execute the message, retrying on token renewals.
 *
 * @param message the message//from   ww w . j  a  va2  s  .c  om
 * @return it's response
 * @throws IOException well...
 */
protected synchronized JsonNode execute(HttpRequestBase message, String payload) throws IOException {
    // have we authenticated?
    if (sessionToken == null) {
        doAuthenticate();
    }

    logger.debug("Requesting {}", message.getURI());
    if (payload != null) {
        logger.debug("With payload: {}", payload);
        ((HttpEntityEnclosingRequestBase) message).setEntity(new StringEntity(payload));
    }

    message.setHeader("Authorization", "Bearer " + sessionToken);
    message.setHeader("Content-Type", "application/json");
    message.setHeader("User-Agent", appName);

    for (int i = 0; i < AUTH_RETRY; i++) {
        logger.debug("Request {}", (i + 1));
        try (CloseableHttpResponse response = getClient().execute(winkHost, message)) {
            StatusLine status = response.getStatusLine();

            // because we could get error payloads, extract the response if there is any to be had
            HttpEntity entity = response.getEntity();
            String responsePayload = entity == null ? null : EntityUtils.toString(entity);
            int statusCode = status.getStatusCode();
            logger.debug("Received: code = {}\n{}", status, responsePayload);

            switch (statusCode) {
            case 200: // OK
            case 201: // created
            case 202: // accepted (processing not complete)
            {
                // if no response payload, return none
                if (entity == null) {
                    logger.debug("No response payload for code {}", statusCode);
                    return null;
                }
                return payloadMapper.readValue(responsePayload, ObjectNode.class);
            }
            case 204: // no content
                return null;
            case 401:
                break;
            default:
                logger.error("Response payload on error {}:\n{}", statusCode, responsePayload);
                handleErrorCodes(status);
            }
        }
        // interesting new wrinkle...
        catch (NoHttpResponseException e) {
            logger.warn("Stale connection - {}: retrying", e.getLocalizedMessage());
            i--;
        }

        // attempt to renew the token
        doRenewAuth();
    }
    throw new AuthenticationException("Unauthorized");
}

From source file:com.ibm.sbt.test.lib.MockService.java

@Override
protected HttpResponse executeRequest(HttpClient httpClient, HttpRequestBase httpRequestBase, Args args)
        throws ClientServicesException {

    switch (this.mode) {
    case REPLAY:/*from  www  .j a va  2 s  .  com*/
        return serializer.replayResponse();
    case PASSTHROUGH:
        return super.executeRequest(httpClient, httpRequestBase, args);
    case RECORD:
        HttpResponse response;
        response = super.executeRequest(httpClient, httpRequestBase, args);
        System.out.println(httpRequestBase.getMethod() + " " + httpRequestBase.getURI() + ": "
                + response.getStatusLine().getStatusCode());
        return serializer.recordResponse(response);
    default:
        throw new UnsupportedOperationException("Invalid mode " + this.mode);
    }
}

From source file:org.apache.camel.component.http4.HttpProducer.java

protected Exception populateHttpOperationFailedException(Exchange exchange, HttpRequestBase httpRequest,
        HttpResponse httpResponse, int responseCode) throws IOException, ClassNotFoundException {
    Exception answer;/*from ww  w . j  av  a  2 s. c  o  m*/

    String uri = httpRequest.getURI().toString();
    String statusText = httpResponse.getStatusLine() != null ? httpResponse.getStatusLine().getReasonPhrase()
            : null;
    Map<String, String> headers = extractResponseHeaders(httpResponse.getAllHeaders());

    Object responseBody = extractResponseBody(httpRequest, httpResponse, exchange);
    if (transferException && responseBody != null && responseBody instanceof Exception) {
        // if the response was a serialized exception then use that
        return (Exception) responseBody;
    }

    // make a defensive copy of the response body in the exception so its detached from the cache
    String copy = null;
    if (responseBody != null) {
        copy = exchange.getContext().getTypeConverter().convertTo(String.class, exchange, responseBody);
    }

    Header locationHeader = httpResponse.getFirstHeader("location");
    if (locationHeader != null && (responseCode >= 300 && responseCode < 400)) {
        answer = new HttpOperationFailedException(uri, responseCode, statusText, locationHeader.getValue(),
                headers, copy);
    } else {
        answer = new HttpOperationFailedException(uri, responseCode, statusText, null, headers, copy);
    }

    return answer;
}