package org.uli.littleproxy; import java.util.Queue; import io.netty.handler.codec.http.HttpRequest; import org.littleshoot.proxy.ChainedProxy; import org.littleshoot.proxy.ChainedProxyManager; import org.littleshoot.proxy.HttpFilters; import org.littleshoot.proxy.HttpFiltersAdapter; import org.littleshoot.proxy.HttpFiltersSource; import org.littleshoot.proxy.HttpFiltersSourceAdapter; import org.littleshoot.proxy.HttpProxyServer; import org.littleshoot.proxy.impl.DefaultHttpProxyServer; public class LittleProxyServer { public static void main(String[] args) { HttpProxyServer server = DefaultHttpProxyServer.bootstrap() .withPort(8888) .start(); } public static void main1(String[] args) { ChainedProxyManager chainProxyManager = new ChainedProxyManager() { public void onCommunicationError(String hostAndPort) { // TODO Auto-generated method stub } public String getChainProxy(HttpRequest httpRequest) { return "proxy.mycompany.org:3128"; } @Override public void lookupChainedProxies(HttpRequest httpRequest, Queue<ChainedProxy> chainedProxies) { // TODO Auto-generated method stub } }; HttpFiltersSource filtersSource = new HttpFiltersSourceAdapter(); HttpProxyServer proxyServer = DefaultHttpProxyServer.bootstrap() .withPort(8080) .withChainProxyManager(chainProxyManager) .withFiltersSource(filtersSource) .start(); } static class myFiltersSource extends HttpFiltersSourceAdapter { @Override public HttpFilters filterRequest(HttpRequest originalRequest) { return new myFilters(originalRequest); } } static class myFilters extends HttpFiltersAdapter { public myFilters(HttpRequest originalRequest) { super(originalRequest); } } }