类org.apache.http.HttpRequestInterceptor源码实例Demo

下面列出了怎么用org.apache.http.HttpRequestInterceptor的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: spring-cloud-formula   文件: BmsHttpTransport.java
public BmsHttpTransport(HttpRequestInterceptor requestInterceptor) {
    PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
    connectionManager.setMaxTotal(DEFAULT_MAX_CONNECTIONS);
    connectionManager.setDefaultMaxPerRoute(DEFAULT_MAX_PER_ROUTE_CONNECTIONS);

    RequestConfig requestConfig = RequestConfig.custom().
            setConnectTimeout(DEFAULT_CONNECTION_TIMEOUT).
            setConnectionRequestTimeout(DEFAULT_CONNECTION_TIMEOUT).
            setSocketTimeout(DEFAULT_READ_TIMEOUT).
            build();

    HttpClientBuilder httpClientBuilder = HttpClientBuilder.create().
            setConnectionManager(connectionManager).
            setDefaultRequestConfig(requestConfig).
            useSystemProperties();

    if (requestInterceptor != null) {
        httpClientBuilder.addInterceptorFirst(requestInterceptor);
    }

    this.httpClient = httpClientBuilder.build();
}
 
源代码2 项目: htmlunit   文件: HttpWebConnection.java
private void configureHttpProcessorBuilder(final HttpClientBuilder builder, final WebRequest webRequest) {
    final HttpProcessorBuilder b = HttpProcessorBuilder.create();
    for (final HttpRequestInterceptor i : getHttpRequestInterceptors(webRequest)) {
        b.add(i);
    }

    // These are the headers used in HttpClientBuilder, excluding the already added ones
    // (RequestClientConnControl and RequestAddCookies)
    b.addAll(new RequestDefaultHeaders(null),
            new RequestContent(),
            new RequestTargetHost(),
            new RequestExpectContinue());
    b.add(new RequestAcceptEncoding());
    b.add(new RequestAuthCache());
    b.add(new ResponseProcessCookies());
    builder.setHttpProcessor(b.build());
}
 
源代码3 项目: atlas   文件: Solr6Index.java
private void configureSolrClientsForKerberos() throws PermanentBackendException {
    String kerberosConfig = System.getProperty("java.security.auth.login.config");
    if(kerberosConfig == null) {
        throw new PermanentBackendException("Unable to configure kerberos for solr client. System property 'java.security.auth.login.config' is not set.");
    }
    logger.debug("Using kerberos configuration file located at '{}'.", kerberosConfig);
    try(Krb5HttpClientBuilder krbBuild = new Krb5HttpClientBuilder()) {

        SolrHttpClientBuilder kb = krbBuild.getBuilder();
        HttpClientUtil.setHttpClientBuilder(kb);
        HttpRequestInterceptor bufferedEntityInterceptor = new HttpRequestInterceptor() {
            @Override
            public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
                if(request instanceof HttpEntityEnclosingRequest) {
                    HttpEntityEnclosingRequest enclosingRequest = ((HttpEntityEnclosingRequest) request);
                    HttpEntity requestEntity = enclosingRequest.getEntity();
                    enclosingRequest.setEntity(new BufferedHttpEntity(requestEntity));
                }
            }
        };
        HttpClientUtil.addRequestInterceptor(bufferedEntityInterceptor);

        HttpRequestInterceptor preemptiveAuth = new PreemptiveAuth(new KerberosScheme());
        HttpClientUtil.addRequestInterceptor(preemptiveAuth);
    }
}
 
源代码4 项目: lucene-solr   文件: HttpClientUtil.java
@Override
public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
  // don't synchronize traversal - can lead to deadlock - CopyOnWriteArrayList is critical
  // we also do not want to have to acquire the mutex when the list is empty or put a global
  // mutex around the process calls
  interceptors.forEach(new Consumer<HttpRequestInterceptor>() {

    @Override
    public void accept(HttpRequestInterceptor interceptor) {
      try {
        interceptor.process(request, context);
      } catch (Exception e) {
        log.error("", e);
      }
    }
  });

}
 
@Override
public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
	String baseUrl = (String) context.getAttribute(BASE_URL);
	String layerId = (String) context.getAttribute(LAYER_ID);
	try {
		if (interceptors != null && baseUrl != null) {
			for (Entry<String, List<HttpRequestInterceptor>> entry : interceptors.getMap().entrySet()) {
				String key = entry.getKey();
				if ("".equals(key) || (layerId != null && layerId.equals(key)) || baseUrl.startsWith(key)) {
					for (HttpRequestInterceptor inter : entry.getValue()) {
						inter.process(request, context);
					}
				}
			}
		}
	} catch (Exception e) {
		log.warn("Error processing interceptors: " + e.getMessage());
	}
}
 
源代码6 项目: brave   文件: ITTracingHttpAsyncClientBuilder.java
@Test public void failedInterceptorRemovesScope() {
  assertThat(currentTraceContext.get()).isNull();
  RuntimeException error = new RuntimeException("Test");
  client = TracingHttpAsyncClientBuilder.create(httpTracing)
    .addInterceptorLast((HttpRequestInterceptor) (request, context) -> {
      throw error;
    }).build();
  client.start();

  assertThatThrownBy(() -> get(client, "/foo"))
    .isSameAs(error);

  assertThat(currentTraceContext.get()).isNull();

  testSpanHandler.takeRemoteSpanWithError(CLIENT, error);
}
 
源代码7 项目: netcdf-java   文件: HTTPSession.java
public static void resetInterceptors() {
  if (!TESTING)
    throw new UnsupportedOperationException();
  for (HttpRequestInterceptor hri : reqintercepts) {
    if (hri instanceof HTTPUtil.InterceptCommon)
      ((HTTPUtil.InterceptCommon) hri).clear();
  }
}
 
源代码8 项目: netcdf-java   文件: HTTPSession.java
public static HTTPUtil.InterceptRequest debugRequestInterceptor() {
  if (!TESTING)
    throw new UnsupportedOperationException();
  for (HttpRequestInterceptor hri : reqintercepts) {
    if (hri instanceof HTTPUtil.InterceptRequest)
      return ((HTTPUtil.InterceptRequest) hri);
  }
  return null;
}
 
/**
 * Injects the client builder with AWS credentials.
 * @param credentialsProvider is the AWS credentials provider.
 * @return self.
 */
public Builder withCredentials(AWSCredentialsProvider credentialsProvider)
{
    /**
     * endpoint:
     * https://search-movies-ne3fcqzfipy6jcrew2wca6kyqu.us-east-1.es.amazonaws.com
     *
     * domainSplits:
     * [0] = "https://search-movies-ne3fcqzfipy6jcrew2wca6kyqu"
     * [1] = "us-east-1"
     * [2] = "es"
     * [3] = "amazonaws"
     * [4] = "com"
     */
    List<String> domainSplits = domainSplitter.splitToList(endpoint);

    if (domainSplits.size() > 1) {
        signer.setRegionName(domainSplits.get(1));
        signer.setServiceName("es");
    }

    HttpRequestInterceptor interceptor =
            new AWSRequestSigningApacheInterceptor(signer.getServiceName(), signer, credentialsProvider);

    clientBuilder.setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
            .addInterceptorLast(interceptor));

    return this;
}
 
源代码10 项目: vividus   文件: HttpClientConfigTests.java
@Test
void testGetAndSetLastRequestInterceptor()
{
    HttpRequestInterceptor interceptor = mock(HttpRequestInterceptor.class);
    config.setLastRequestInterceptor(interceptor);
    assertEquals(interceptor, config.getLastRequestInterceptor());
}
 
源代码11 项目: blog-hunter   文件: HttpClientGenerator.java
private CloseableHttpClient generateClient(Site site) {
    HttpClientBuilder httpClientBuilder = HttpClients.custom();

    httpClientBuilder.setConnectionManager(connectionManager);
    if (site.getUserAgent() != null) {
        httpClientBuilder.setUserAgent(site.getUserAgent());
    } else {
        httpClientBuilder.setUserAgent("");
    }
    if (site.isUseGzip()) {
        httpClientBuilder.addInterceptorFirst(new HttpRequestInterceptor() {

            public void process(
                    final HttpRequest request,
                    final HttpContext context) throws HttpException, IOException {
                if (!request.containsHeader("Accept-Encoding")) {
                    request.addHeader("Accept-Encoding", "gzip");
                }
            }
        });
    }
    //解决post/redirect/post 302跳转问题
    httpClientBuilder.setRedirectStrategy(new CustomRedirectStrategy());

    SocketConfig.Builder socketConfigBuilder = SocketConfig.custom();
    socketConfigBuilder.setSoKeepAlive(true).setTcpNoDelay(true);
    socketConfigBuilder.setSoTimeout(site.getTimeOut());
    SocketConfig socketConfig = socketConfigBuilder.build();
    httpClientBuilder.setDefaultSocketConfig(socketConfig);
    connectionManager.setDefaultSocketConfig(socketConfig);
    httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(site.getRetryTimes(), true));
    generateCookie(httpClientBuilder, site);
    return httpClientBuilder.build();
}
 
@Bean
@Primary
public ConsulClient consulClient(ConsulProperties consulProperties,
                                 ConsulConfigProperties consulConfigProperties) {
    final int agentPort = consulProperties.getPort();
    final String agentHost = !StringUtils.isEmpty(consulProperties.getScheme())
            ? consulProperties.getScheme() + "://" + consulProperties.getHost()
            : consulProperties.getHost();

    logger.info("Init consul host: " + agentHost + " port: " + agentPort);
    if (consulProperties.getTls() != null) {
        ConsulProperties.TLSConfig tls = consulProperties.getTls();
        TLSConfig tlsConfig = new TLSConfig(
                tls.getKeyStoreInstanceType(),
                tls.getCertificatePath(),
                tls.getCertificatePassword(),
                tls.getKeyStorePath(),
                tls.getKeyStorePassword()
        );
        return new ConsulClient(agentHost, agentPort, tlsConfig);
    }
    HttpRequestInterceptor httpRequestInterceptor = new BmsCommonInterceptor();
    BmsHttpTransport httpTransport = new BmsHttpTransport(httpRequestInterceptor);
    ConsulRawClient rawClient = new ConsulRawClient(httpTransport.getHttpClient(),
            agentHost, agentPort, consulConfigProperties.getPath());
    return new ConsulClient(rawClient);
}
 
源代码13 项目: plumemo   文件: HttpClientGenerator.java
private CloseableHttpClient generateClient(Site site) {
    HttpClientBuilder httpClientBuilder = HttpClients.custom();

    httpClientBuilder.setConnectionManager(connectionManager);
    if (site.getUserAgent() != null) {
        httpClientBuilder.setUserAgent(site.getUserAgent());
    } else {
        httpClientBuilder.setUserAgent("");
    }
    if (site.isUseGzip()) {
        httpClientBuilder.addInterceptorFirst(new HttpRequestInterceptor() {

            @Override
            public void process(
                    HttpRequest request,
                    HttpContext context) throws HttpException, IOException {
                if (!request.containsHeader("Accept-Encoding")) {
                    request.addHeader("Accept-Encoding", "gzip");
                }
            }
        });
    }
    //解决post/redirect/post 302跳转问题
    httpClientBuilder.setRedirectStrategy(new CustomRedirectStrategy());

    SocketConfig.Builder socketConfigBuilder = SocketConfig.custom();
    socketConfigBuilder.setSoKeepAlive(true).setTcpNoDelay(true);
    socketConfigBuilder.setSoTimeout(site.getTimeOut());
    SocketConfig socketConfig = socketConfigBuilder.build();
    httpClientBuilder.setDefaultSocketConfig(socketConfig);
    connectionManager.setDefaultSocketConfig(socketConfig);
    httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(site.getRetryTimes(), true));
    generateCookie(httpClientBuilder, site);
    return httpClientBuilder.build();
}
 
源代码14 项目: sofa-tracer   文件: SofaTracerHttpClientBuilder.java
public static HttpAsyncClientBuilder asyncClientBuilder(HttpAsyncClientBuilder httpAsyncClientBuilder,
                                                        String currentApp, String targetApp) {
    SofaTracerAsyncHttpInterceptor interceptor = new SofaTracerAsyncHttpInterceptor(
        getHttpClientTracer(), currentApp, targetApp);
    return httpAsyncClientBuilder.addInterceptorFirst((HttpRequestInterceptor) interceptor)
        .addInterceptorFirst((HttpResponseInterceptor) interceptor);
}
 
CloseableHttpClient signingClientForServiceName(String serviceName) {
    AWS4Signer signer = new AWS4Signer();
    signer.setServiceName(serviceName);
    signer.setRegionName(AWS_REGION);

    HttpRequestInterceptor interceptor = new AWSRequestSigningApacheInterceptor(serviceName, signer, credentialsProvider);
    return HttpClients.custom()
            .addInterceptorLast(interceptor)
            .build();
}
 
源代码16 项目: cyberduck   文件: StoregateSession.java
@Override
protected StoregateApiClient connect(final Proxy proxy, final HostKeyCallback key, final LoginCallback prompt) {
    final HttpClientBuilder configuration = builder.build(proxy, this, prompt);
    authorizationService = new OAuth2RequestInterceptor(builder.build(proxy, this, prompt).addInterceptorLast(new HttpRequestInterceptor() {
        @Override
        public void process(final HttpRequest request, final HttpContext context) {
            request.addHeader(HttpHeaders.AUTHORIZATION,
                String.format("Basic %s", Base64.encodeToString(String.format("%s:%s", host.getProtocol().getOAuthClientId(), host.getProtocol().getOAuthClientSecret()).getBytes(StandardCharsets.UTF_8), false)));
        }
    }).build(),
        host).withRedirectUri(CYBERDUCK_REDIRECT_URI.equals(host.getProtocol().getOAuthRedirectUrl()) ? host.getProtocol().getOAuthRedirectUrl() :
        Scheme.isURL(host.getProtocol().getOAuthRedirectUrl()) ? host.getProtocol().getOAuthRedirectUrl() : new HostUrlProvider().withUsername(false).withPath(true).get(
            host.getProtocol().getScheme(), host.getPort(), null, host.getHostname(), host.getProtocol().getOAuthRedirectUrl())
    );
    // Force login even if browser session already exists
    authorizationService.withParameter("prompt", "login");
    configuration.setServiceUnavailableRetryStrategy(new OAuth2ErrorResponseInterceptor(host, authorizationService, prompt));
    configuration.addInterceptorLast(authorizationService);
    final CloseableHttpClient apache = configuration.build();
    final StoregateApiClient client = new StoregateApiClient(apache);
    final int timeout = PreferencesFactory.get().getInteger("connection.timeout.seconds") * 1000;
    client.setConnectTimeout(timeout);
    client.setBasePath(new HostUrlProvider().withUsername(false).withPath(true).get(host.getProtocol().getScheme(), host.getPort(),
        null, host.getHostname(), host.getProtocol().getContext()));
    client.setHttpClient(ClientBuilder.newClient(new ClientConfig()
        .register(new InputStreamProvider())
        .register(MultiPartFeature.class)
        .register(new JSON())
        .register(JacksonFeature.class)
        .connectorProvider(new HttpComponentsProvider(apache))));
    client.setUserAgent(new PreferencesUseragentProvider().get());
    return client;
}
 
源代码17 项目: tom-crawler   文件: TomHttpClientGenerator.java
private CloseableHttpClient generateClient(Site site) {
    HttpClientBuilder httpClientBuilder = HttpClients.custom();

    httpClientBuilder.setConnectionManager(connectionManager);
    if (site.getUserAgent() != null) {
        httpClientBuilder.setUserAgent(site.getUserAgent());
    } else {
        httpClientBuilder.setUserAgent("");
    }
    if (site.isUseGzip()) {
        httpClientBuilder.addInterceptorFirst(new HttpRequestInterceptor() {

            public void process(
                    final HttpRequest request,
                    final HttpContext context) throws HttpException, IOException {
                if (!request.containsHeader("Accept-Encoding")) {
                    request.addHeader("Accept-Encoding", "gzip");
                }
            }
        });
    }
    //解决post/redirect/post 302跳转问题
    httpClientBuilder.setRedirectStrategy(new CustomRedirectStrategy());

    SocketConfig.Builder socketConfigBuilder = SocketConfig.custom();
    socketConfigBuilder.setSoKeepAlive(true).setTcpNoDelay(true);
    socketConfigBuilder.setSoTimeout(site.getTimeOut());
    SocketConfig socketConfig = socketConfigBuilder.build();
    httpClientBuilder.setDefaultSocketConfig(socketConfig);
    connectionManager.setDefaultSocketConfig(socketConfig);
    httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(site.getRetryTimes(), true));
    generateCookie(httpClientBuilder, site);
    return httpClientBuilder.build();
}
 
源代码18 项目: bender   文件: UrlSigningAuthConfig.java
public HttpRequestInterceptor getHttpInterceptor() {
  DefaultAWSCredentialsProviderChain cp = new DefaultAWSCredentialsProviderChain();

  AWS4Signer signer = new AWS4Signer();
  signer.setServiceName(this.service);
  signer.setRegionName(this.region.getName());

  return new AWSRequestSigningApacheInterceptor(this.service, signer, cp);
}
 
@DataProvider(value = {
    "true",
    "false"
})
@Test
public void addTracingInterceptors_double_arg_works_as_expected(boolean subspanOptionOn) {
    // given
    HttpClientBuilder builder = HttpClientBuilder.create();

    // when
    addTracingInterceptors(builder, subspanOptionOn);

    // then
    HttpClientBuilderInterceptors builderInterceptors = new HttpClientBuilderInterceptors(builder);

    assertThat(builderInterceptors.firstRequestInterceptors).hasSize(1);
    assertThat(builderInterceptors.lastResponseInterceptors).hasSize(1);

    HttpRequestInterceptor requestInterceptor = builderInterceptors.firstRequestInterceptors.get(0);
    HttpResponseInterceptor responseInterceptor = builderInterceptors.lastResponseInterceptors.get(0);
    assertThat(requestInterceptor).isInstanceOf(WingtipsApacheHttpClientInterceptor.class);
    assertThat(responseInterceptor).isInstanceOf(WingtipsApacheHttpClientInterceptor.class);

    assertThat(((WingtipsApacheHttpClientInterceptor) requestInterceptor).surroundCallsWithSubspan)
        .isEqualTo(subspanOptionOn);
    assertThat(((WingtipsApacheHttpClientInterceptor) responseInterceptor).surroundCallsWithSubspan)
        .isEqualTo(subspanOptionOn);

    assertThat(builderInterceptors.lastRequestInterceptors).isNullOrEmpty();
    assertThat(builderInterceptors.firstResponseInterceptors).isNullOrEmpty();

    if (subspanOptionOn) {
        assertThat(builderInterceptors.firstRequestInterceptors).containsExactly(DEFAULT_REQUEST_IMPL);
        assertThat(builderInterceptors.lastResponseInterceptors).containsExactly(DEFAULT_RESPONSE_IMPL);
    }
}
 
public HttpClientBuilderInterceptors(HttpClientBuilder builder) {
    this.firstRequestInterceptors =
        (List<HttpRequestInterceptor>) Whitebox.getInternalState(builder, "requestFirst");
    this.lastRequestInterceptors =
        (List<HttpRequestInterceptor>) Whitebox.getInternalState(builder, "requestLast");
    this.firstResponseInterceptors =
        (List<HttpResponseInterceptor>) Whitebox.getInternalState(builder, "responseFirst");
    this.lastResponseInterceptors =
        (List<HttpResponseInterceptor>) Whitebox.getInternalState(builder, "responseLast");
}
 
源代码21 项目: dcos-commons   文件: DcosHttpClientBuilder.java
/**
 * Assigns a token provider which will produce HTTP auth tokens to be included in requests.
 *
 * @return this
 */
public DcosHttpClientBuilder setTokenProvider(TokenProvider provider) {
  this.addInterceptorFirst(
      (HttpRequestInterceptor) (request, context) ->
          request.addHeader(
              "Authorization",
              String.format("token=%s", provider.getToken().getToken())));
  return this;
}
 
源代码22 项目: riptide   文件: HttpClientFactory.java
public static CloseableHttpClient createHttpClient(final Client client,
        final List<HttpRequestInterceptor> firstRequestInterceptors,
        final HttpClientConnectionManager connectionManager,
        @Nullable final HttpClientCustomizer customizer,
        @Nullable final Object cacheStorage) {

    final Caching caching = client.getCaching();
    final HttpClientBuilder builder = caching.getEnabled() ?
            configureCaching(caching, cacheStorage) :
            HttpClientBuilder.create();

    final RequestConfig.Builder config = RequestConfig.custom();

    firstRequestInterceptors.forEach(builder::addInterceptorFirst);

    final Connections connections = client.getConnections();
    config.setConnectionRequestTimeout((int) connections.getLeaseRequestTimeout().to(MILLISECONDS));
    config.setConnectTimeout((int) connections.getConnectTimeout().to(MILLISECONDS));
    config.setSocketTimeout((int) connections.getSocketTimeout().to(MILLISECONDS));

    builder.setConnectionManager(connectionManager);
    builder.setDefaultRequestConfig(config.build());
    builder.disableAutomaticRetries();

    Optional.ofNullable(customizer).ifPresent(customize(builder));

    return builder.build();
}
 
源代码23 项目: zongtui-webcrawler   文件: HttpClientGenerator.java
private CloseableHttpClient generateClient(Site site) {
    HttpClientBuilder httpClientBuilder = HttpClients.custom().setConnectionManager(connectionManager);
    if (site != null && site.getUserAgent() != null) {
        httpClientBuilder.setUserAgent(site.getUserAgent());
    } else {
        httpClientBuilder.setUserAgent("");
    }
    if (site == null || site.isUseGzip()) {
        httpClientBuilder.addInterceptorFirst(new HttpRequestInterceptor() {

            public void process(
                    final HttpRequest request,
                    final HttpContext context) throws HttpException, IOException {
                if (!request.containsHeader("Accept-Encoding")) {
                    request.addHeader("Accept-Encoding", "gzip");
                }

            }
        });
    }
    SocketConfig socketConfig = SocketConfig.custom().setSoKeepAlive(true).setTcpNoDelay(true).build();
    httpClientBuilder.setDefaultSocketConfig(socketConfig);
    if (site != null) {
        httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(site.getRetryTimes(), true));
    }
    generateCookie(httpClientBuilder, site);
    return httpClientBuilder.build();
}
 
源代码24 项目: attic-polygene-java   文件: WebRealmServiceTest.java
@Test
public void test()
    throws IOException
{
    DefaultHttpClient client = new DefaultHttpClient();

    // Our request method
    HttpGet get = new HttpGet( "http://127.0.0.1:" + port + "/" );

    HttpResponse response = client.execute( get );
    int status = response.getStatusLine().getStatusCode();

    assertThat( String.valueOf( status ).substring( 0, 1 ) + "xx", is( "4xx" ) );

    EntityUtils.consume( response.getEntity() );

    // Simple interceptor set as first interceptor in the protocol chain
    HttpRequestInterceptor preemptiveAuth = new BasicAuthRequestInterceptor();
    client.addRequestInterceptor( preemptiveAuth, 0 );

    // Set credentials
    UsernamePasswordCredentials creds = new UsernamePasswordCredentials( "foo", "bar" );
    client.getCredentialsProvider().setCredentials( AuthScope.ANY, creds );

    response = client.execute( get );
    status = response.getStatusLine().getStatusCode();

    assertThat( status, is( 200 ) );

    String result = new BasicResponseHandler().handleResponse( response ).trim();
    assertThat( result, is( "FOO" ) );
}
 
源代码25 项目: olingo-odata4   文件: CXFOAuth2HttpClientFactory.java
@Override
protected void accessToken(final DefaultHttpClient client) throws OAuth2Exception {
  client.addRequestInterceptor(new HttpRequestInterceptor() {

    @Override
    public void process(final HttpRequest request, final HttpContext context) throws HttpException, IOException {
      request.removeHeaders(HttpHeaders.AUTHORIZATION);
      request.addHeader(HttpHeaders.AUTHORIZATION, OAuthClientUtils.createAuthorizationHeader(accessToken));
    }
  });
}
 
@Override
protected void accessToken(final DefaultHttpClient client) throws OAuth2Exception {
  client.addRequestInterceptor(new HttpRequestInterceptor() {

    @Override
    public void process(final HttpRequest request, final HttpContext context) throws HttpException, IOException {
      request.removeHeaders(HttpHeaders.AUTHORIZATION);
      request.addHeader(HttpHeaders.AUTHORIZATION, "Bearer " + token.get("access_token").asText());
    }
  });
}
 
源代码27 项目: webmagic   文件: HttpClientGenerator.java
private CloseableHttpClient generateClient(Site site) {
    HttpClientBuilder httpClientBuilder = HttpClients.custom();

    httpClientBuilder.setConnectionManager(connectionManager);
    if (site.getUserAgent() != null) {
        httpClientBuilder.setUserAgent(site.getUserAgent());
    } else {
        httpClientBuilder.setUserAgent("");
    }
    if (site.isUseGzip()) {
        httpClientBuilder.addInterceptorFirst(new HttpRequestInterceptor() {

            public void process(
                    final HttpRequest request,
                    final HttpContext context) throws HttpException, IOException {
                if (!request.containsHeader("Accept-Encoding")) {
                    request.addHeader("Accept-Encoding", "gzip");
                }
            }
        });
    }
    //解决post/redirect/post 302跳转问题
    httpClientBuilder.setRedirectStrategy(new CustomRedirectStrategy());

    SocketConfig.Builder socketConfigBuilder = SocketConfig.custom();
    socketConfigBuilder.setSoKeepAlive(true).setTcpNoDelay(true);
    socketConfigBuilder.setSoTimeout(site.getTimeOut());
    SocketConfig socketConfig = socketConfigBuilder.build();
    httpClientBuilder.setDefaultSocketConfig(socketConfig);
    connectionManager.setDefaultSocketConfig(socketConfig);
    httpClientBuilder.setRetryHandler(new DefaultHttpRequestRetryHandler(site.getRetryTimes(), true));
    generateCookie(httpClientBuilder, site);
    return httpClientBuilder.build();
}
 
源代码28 项目: vividus   文件: HttpClientConfig.java
public HttpRequestInterceptor getLastRequestInterceptor()
{
    return lastRequestInterceptor;
}
 
源代码29 项目: vividus   文件: HttpClientConfig.java
public void setLastRequestInterceptor(HttpRequestInterceptor lastRequestInterceptor)
{
    this.lastRequestInterceptor = lastRequestInterceptor;
}
 
public HttpClientConfigurer addInterceptor(HttpRequestInterceptor interceptor) {
	httpClientBuilder.addInterceptorLast(interceptor);

	return this;
}
 
 类所在包
 同包方法