Search in sources :

Example 1 with HttpHost

use of cz.msebera.android.httpclient.HttpHost in project android-async-http by loopj.

the class PreemptiveAuthorizationHttpRequestInterceptor method process.

public void process(final HttpRequest request, final HttpContext context) throws HttpException, IOException {
    AuthState authState = (AuthState) context.getAttribute(ClientContext.TARGET_AUTH_STATE);
    CredentialsProvider credsProvider = (CredentialsProvider) context.getAttribute(ClientContext.CREDS_PROVIDER);
    HttpHost targetHost = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
    if (authState.getAuthScheme() == null) {
        AuthScope authScope = new AuthScope(targetHost.getHostName(), targetHost.getPort());
        Credentials creds = credsProvider.getCredentials(authScope);
        if (creds != null) {
            authState.setAuthScheme(new BasicScheme());
            authState.setCredentials(creds);
        }
    }
}
Also used : BasicScheme(cz.msebera.android.httpclient.impl.auth.BasicScheme) AuthState(cz.msebera.android.httpclient.auth.AuthState) HttpHost(cz.msebera.android.httpclient.HttpHost) AuthScope(cz.msebera.android.httpclient.auth.AuthScope) CredentialsProvider(cz.msebera.android.httpclient.client.CredentialsProvider) Credentials(cz.msebera.android.httpclient.auth.Credentials)

Example 2 with HttpHost

use of cz.msebera.android.httpclient.HttpHost in project android-async-http by loopj.

the class AsyncHttpClient method setProxy.

/**
     * Sets the Proxy by it's hostname and port
     *
     * @param hostname the hostname (IP or DNS name)
     * @param port     the port number. -1 indicates the scheme default port.
     */
public void setProxy(String hostname, int port) {
    final HttpHost proxy = new HttpHost(hostname, port);
    final HttpParams httpParams = this.httpClient.getParams();
    httpParams.setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
}
Also used : HttpParams(cz.msebera.android.httpclient.params.HttpParams) BasicHttpParams(cz.msebera.android.httpclient.params.BasicHttpParams) HttpHost(cz.msebera.android.httpclient.HttpHost)

Example 3 with HttpHost

use of cz.msebera.android.httpclient.HttpHost in project android-async-http by loopj.

the class MyRedirectHandler method getLocationURI.

@Override
public URI getLocationURI(final HttpResponse response, final HttpContext context) throws ProtocolException {
    if (response == null) {
        throw new IllegalArgumentException("HTTP response may not be null");
    }
    //get the location header to find out where to redirect to
    Header locationHeader = response.getFirstHeader("location");
    if (locationHeader == null) {
        // got a redirect response, but no location header
        throw new ProtocolException("Received redirect response " + response.getStatusLine() + " but no location header");
    }
    //HERE IS THE MODIFIED LINE OF CODE
    String location = locationHeader.getValue().replaceAll(" ", "%20");
    URI uri;
    try {
        uri = new URI(location);
    } catch (URISyntaxException ex) {
        throw new ProtocolException("Invalid redirect URI: " + location, ex);
    }
    HttpParams params = response.getParams();
    // Location       = "Location" ":" absoluteURI
    if (!uri.isAbsolute()) {
        if (params.isParameterTrue(ClientPNames.REJECT_RELATIVE_REDIRECT)) {
            throw new ProtocolException("Relative redirect location '" + uri + "' not allowed");
        }
        // Adjust location URI
        HttpHost target = (HttpHost) context.getAttribute(ExecutionContext.HTTP_TARGET_HOST);
        if (target == null) {
            throw new IllegalStateException("Target host not available " + "in the HTTP context");
        }
        HttpRequest request = (HttpRequest) context.getAttribute(ExecutionContext.HTTP_REQUEST);
        try {
            URI requestURI = new URI(request.getRequestLine().getUri());
            URI absoluteRequestURI = URIUtils.rewriteURI(requestURI, target, true);
            uri = URIUtils.resolve(absoluteRequestURI, uri);
        } catch (URISyntaxException ex) {
            throw new ProtocolException(ex.getMessage(), ex);
        }
    }
    if (params.isParameterFalse(ClientPNames.ALLOW_CIRCULAR_REDIRECTS)) {
        RedirectLocations redirectLocations = (RedirectLocations) context.getAttribute(REDIRECT_LOCATIONS);
        if (redirectLocations == null) {
            redirectLocations = new RedirectLocations();
            context.setAttribute(REDIRECT_LOCATIONS, redirectLocations);
        }
        URI redirectURI;
        if (uri.getFragment() != null) {
            try {
                HttpHost target = new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme());
                redirectURI = URIUtils.rewriteURI(uri, target, true);
            } catch (URISyntaxException ex) {
                throw new ProtocolException(ex.getMessage(), ex);
            }
        } else {
            redirectURI = uri;
        }
        if (redirectLocations.contains(redirectURI)) {
            throw new CircularRedirectException("Circular redirect to '" + redirectURI + "'");
        } else {
            redirectLocations.add(redirectURI);
        }
    }
    return uri;
}
Also used : HttpRequest(cz.msebera.android.httpclient.HttpRequest) ProtocolException(cz.msebera.android.httpclient.ProtocolException) CircularRedirectException(cz.msebera.android.httpclient.client.CircularRedirectException) HttpParams(cz.msebera.android.httpclient.params.HttpParams) RedirectLocations(cz.msebera.android.httpclient.impl.client.RedirectLocations) Header(cz.msebera.android.httpclient.Header) HttpHost(cz.msebera.android.httpclient.HttpHost) URISyntaxException(java.net.URISyntaxException) URI(java.net.URI)

Aggregations

HttpHost (cz.msebera.android.httpclient.HttpHost)3 HttpParams (cz.msebera.android.httpclient.params.HttpParams)2 Header (cz.msebera.android.httpclient.Header)1 HttpRequest (cz.msebera.android.httpclient.HttpRequest)1 ProtocolException (cz.msebera.android.httpclient.ProtocolException)1 AuthScope (cz.msebera.android.httpclient.auth.AuthScope)1 AuthState (cz.msebera.android.httpclient.auth.AuthState)1 Credentials (cz.msebera.android.httpclient.auth.Credentials)1 CircularRedirectException (cz.msebera.android.httpclient.client.CircularRedirectException)1 CredentialsProvider (cz.msebera.android.httpclient.client.CredentialsProvider)1 BasicScheme (cz.msebera.android.httpclient.impl.auth.BasicScheme)1 RedirectLocations (cz.msebera.android.httpclient.impl.client.RedirectLocations)1 BasicHttpParams (cz.msebera.android.httpclient.params.BasicHttpParams)1 URI (java.net.URI)1 URISyntaxException (java.net.URISyntaxException)1