代理服务器,Proxy Server,http代理服务器就是基于http协议的代理服务器。
LittleProxy
LittleProxy是一个用Java编写的高性能HTTP代理服务器,基于Netty事件的网络库之上,它非常稳定,性能良好,易于集成到项目中,支持命令行和嵌入式方式。
地址:https://github.com/adamfisk/LittleProxy
pom.xml
org.littleshoot
littleproxy
1.1.2
使用代码
import org.littleshoot.proxy.HttpProxyServer;
import org.littleshoot.proxy.impl.DefaultHttpProxyServer;
public class HttpClientServer {
public static void main(String[] args) {
HttpProxyServer server = DefaultHttpProxyServer.bootstrap()
.withPort(11111)
.withFiltersSource(new MyHttpFiltersSourceAdapter())
.start();
}
}
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.http.*;
import org.littleshoot.proxy.HttpFilters;
import org.littleshoot.proxy.HttpFiltersAdapter;
import org.littleshoot.proxy.HttpFiltersSourceAdapter;
public class MyHttpFiltersSourceAdapter extends HttpFiltersSourceAdapter {
public HttpFilters filterRequest(HttpRequest originalRequest, ChannelHandlerContext ctx) {
String uri = originalRequest.getUri();
HttpMethod method = originalRequest.getMethod();
System.out.println("method=" + method + ",uri=" + uri);
return new HttpFiltersAdapter(originalRequest) {
@Override
public HttpResponse clientToProxyRequest(HttpObject httpObject) {
// TODO: implement your filtering here
System.out.println("clientToProxyRequest=" + httpObject);
return null;
}
@Override
public HttpObject serverToProxyResponse(HttpObject httpObject) {
// TODO: implement your filtering here
System.out.println("serverToProxyResponse=" + httpObject);
return httpObject;
}
};
}
@Override
public int getMaximumResponseBufferSizeInBytes() {
return 10 * 1024 * 1024;
}
}
真是个好年代,什么东西别人都替你写好了~~
留言与评论(共有 0 条评论) “” |