Skip to content

Instantly share code, notes, and snippets.

@stevenschlansker
Last active August 29, 2015 14:02
Show Gist options
  • Save stevenschlansker/db772bfe5674339da40b to your computer and use it in GitHub Desktop.
Save stevenschlansker/db772bfe5674339da40b to your computer and use it in GitHub Desktop.
import org.apache.http.client.params.ClientPNames;
import org.apache.http.params.HttpParams;
@SuppressWarnings("deprecation")
class AllowRedirectHttpParams implements HttpParams
{
private final HttpParams delegate;
AllowRedirectHttpParams(HttpParams delegate)
{
this.delegate = delegate;
}
@Override
public Object getParameter(String name)
{
return delegate.getParameter(name);
}
@Override
public HttpParams setParameter(String name, Object value)
{
return delegate.setParameter(name, value);
}
@Override
public HttpParams copy()
{
return delegate.copy();
}
@Override
public boolean removeParameter(String name)
{
return delegate.removeParameter(name);
}
@Override
public long getLongParameter(String name, long defaultValue)
{
return delegate.getLongParameter(name, defaultValue);
}
@Override
public HttpParams setLongParameter(String name, long value)
{
return delegate.setLongParameter(name, value);
}
@Override
public int getIntParameter(String name, int defaultValue)
{
return delegate.getIntParameter(name, defaultValue);
}
@Override
public HttpParams setIntParameter(String name, int value)
{
return delegate.setIntParameter(name, value);
}
@Override
public double getDoubleParameter(String name, double defaultValue)
{
return delegate.getDoubleParameter(name, defaultValue);
}
@Override
public HttpParams setDoubleParameter(String name, double value)
{
return delegate.setDoubleParameter(name, value);
}
@Override
public boolean getBooleanParameter(String name, boolean defaultValue)
{
if (ClientPNames.HANDLE_REDIRECTS.equals(name)) {
return true;
}
return delegate.getBooleanParameter(name, defaultValue);
}
@Override
public HttpParams setBooleanParameter(String name, boolean value)
{
return delegate.setBooleanParameter(name, value);
}
@Override
public boolean isParameterTrue(String name)
{
return delegate.isParameterTrue(name);
}
@Override
public boolean isParameterFalse(String name)
{
return delegate.isParameterFalse(name);
}
}
final AbstractHttpClient httpClient = (AbstractHttpClient)((ApacheHttpClient4Engine)((ResteasyClient) client).httpEngine()).getHttpClient();
httpClient.setRedirectStrategy(new DefaultRedirectStrategy() {
@Override
protected boolean isRedirectable(String method)
{
return true;
}
});
httpClient.addRequestInterceptor(new HttpRequestInterceptor() {
@Override
public void process(HttpRequest request, HttpContext context) throws HttpException, IOException
{
request.setParams(new AllowRedirectHttpParams(request.getParams()));
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment