下面列出了怎么用org.apache.http.client.RedirectStrategy的API类实例代码及写法,或者点击链接到github查看源代码。
@Test
void testGetAndSetRedirectStrategy()
{
RedirectStrategy redirectStrategy = mock(RedirectStrategy.class);
config.setRedirectStrategy(redirectStrategy);
assertEquals(redirectStrategy, config.getRedirectStrategy());
}
@Inject
public HttpClientFacetImpl(final HttpClientManager httpClientManager,
final Map<String, AutoBlockConfiguration> autoBlockConfiguration,
final Map<String, RedirectStrategy> redirectStrategy)
{
this.httpClientManager = checkNotNull(httpClientManager);
this.autoBlockConfiguration = checkNotNull(autoBlockConfiguration);
this.redirectStrategy = checkNotNull(redirectStrategy);
}
@VisibleForTesting
HttpClientFacetImpl(final HttpClientManager httpClientManager,
final Map<String, AutoBlockConfiguration> autoBlockConfiguration,
final Map<String, RedirectStrategy> redirectStrategy,
final Config config) {
this(httpClientManager, autoBlockConfiguration, redirectStrategy);
this.config = checkNotNull(config);
checkNotNull(autoBlockConfiguration.get(DEFAULT));
}
@Inject
public HttpClientCustomConfigFacetImpl(
final HttpClientManager httpClientManager,
final Map<String, AutoBlockConfiguration> autoBlockConfiguration,
final Map<String, RedirectStrategy> redirectStrategy,
final RequestHeaderAuthenticationStrategy requestHeaderAuthenticationStrategy)
{
super(httpClientManager, autoBlockConfiguration, redirectStrategy);
this.requestHeaderAuthenticationStrategy = requestHeaderAuthenticationStrategy;
}
public RedirectStrategy getRedirectStrategy()
{
return redirectStrategy;
}
public void setRedirectStrategy(RedirectStrategy redirectStrategy)
{
this.redirectStrategy = redirectStrategy;
}
public HttpClientBuilderFacade setRedirect( RedirectStrategy redirectStrategy ) {
this.redirectStrategy = redirectStrategy;
return this;
}
public RedirectStrategy getRedirectionStrategy() {
return this.redirectionStrategy;
}
public void setRedirectionStrategy(final RedirectStrategy redirectionStrategy) {
this.redirectionStrategy = redirectionStrategy;
}
@Nullable
public RedirectStrategy getRedirectStrategy() {
return redirectStrategy;
}
public void setRedirectStrategy(@Nullable final RedirectStrategy redirectStrategy) {
this.redirectStrategy = redirectStrategy;
}
@Nullable
public RedirectStrategy getRedirectStrategy() {
return redirectStrategy;
}
public void setRedirectStrategy(@Nullable final RedirectStrategy redirectStrategy) {
this.redirectStrategy = redirectStrategy;
}
@Override
@Nullable
public RedirectStrategy getRedirectStrategy() {
return redirectStrategy;
}
@Override
public void setRedirectStrategy(@Nullable final RedirectStrategy redirectStrategy) {
this.redirectStrategy = redirectStrategy;
}
/**
* Apply redirect strategy to plan.
*/
private void apply(final RedirectStrategy redirectStrategy, final HttpClientPlan plan) {
plan.getClient().setRedirectStrategy(redirectStrategy);
}
@Nullable
RedirectStrategy getRedirectStrategy();
protected RedirectStrategy getRedirectStrategy() {
return this.redirectStrategy.get(getRepository().getFormat().getValue());
}
public static HttpClientBuilder cliBuilder(int timeout) {
HttpRequestRetryHandler retryHander = new HttpRequestRetryHandler() {
@Override
public boolean retryRequest(IOException exception, int executionCount, HttpContext context) {
if (executionCount > 3) {
// Do not retry if over max retry count
return false;
}
if (exception instanceof java.net.SocketTimeoutException) {
//特殊处理
return true;
}
if (exception instanceof InterruptedIOException) {
// Timeout
return true;
}
if (exception instanceof UnknownHostException) {
// Unknown host
return false;
}
if (exception instanceof SSLException) {
// SSL handshake exception
return false;
}
HttpClientContext clientContext = HttpClientContext.adapt(context);
HttpRequest request = clientContext.getRequest();
boolean idempotent = !(request instanceof HttpEntityEnclosingRequest);
if (idempotent) {
// Retry if the request is considered idempotent
return true;
}
return false;
}
};
RedirectStrategy redirectStrategy = new SeimiRedirectStrategy();
RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).setSocketTimeout(timeout).build();
PoolingHttpClientConnectionManager poolingHttpClientConnectionManager = HttpClientConnectionManagerProvider.getHcPoolInstance();
return HttpClients.custom().setDefaultRequestConfig(requestConfig).setConnectionManager(poolingHttpClientConnectionManager)
.setRedirectStrategy(redirectStrategy).setRetryHandler(retryHander);
}
public HttpClientBuilderFacade setRedirect( RedirectStrategy redirectStrategy ) {
this.redirectStrategy = redirectStrategy;
return this;
}
public HttpClientBuilderFacade setRedirect( RedirectStrategy redirectStrategy ) {
this.redirectStrategy = redirectStrategy;
return this;
}
void setRedirectStrategy(@Nullable final RedirectStrategy redirectStrategy);