`

netty实现 http代理服务器 littleproxy

阅读更多

littleproxy 是用netty实现的一个 http代理服务器,代码如下

以下会打印访问的所有url。littleproxy可以修改代理的请求头,内容,参数,

也可以修改服务器返回来的请求头和内容,非常方便。

项目地址  https://github.com/adamfisk/LittleProxy

import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.http.HttpObject;
import io.netty.handler.codec.http.HttpRequest;
import io.netty.handler.codec.http.HttpResponse;

import org.littleshoot.proxy.HttpFilters;
import org.littleshoot.proxy.HttpFiltersAdapter;
import org.littleshoot.proxy.HttpFiltersSourceAdapter;
import org.littleshoot.proxy.HttpProxyServer;
import org.littleshoot.proxy.impl.DefaultHttpProxyServer;

public class LittleProxy {

	public static void main(String[] args)throws Exception {
		HttpProxyServer server =
			    DefaultHttpProxyServer.bootstrap()
			        .withPort(9911)
			        .withFiltersSource(new HttpFiltersSourceAdapter() {
			            public HttpFilters filterRequest(HttpRequest originalRequest, ChannelHandlerContext ctx) {
			               return new HttpFiltersAdapter(originalRequest) {
			                  @Override
			                  public HttpResponse requestPre(HttpObject httpObject) {
			                	 String uri = originalRequest.getUri();
			                	 
			                	 System.out.println("uri:"+uri);
			                      return null;
			                  }

			                  @Override
			                  public HttpResponse requestPost(HttpObject httpObject) {
			                      // TODO: implement your filtering here
			                      return null;
			                  }

			                  @Override
			                  public HttpObject responsePre(HttpObject httpObject) {
			                      // TODO: implement your filtering here
			                	   
			                      return httpObject;
			                  }

			                  @Override
			                  public HttpObject responsePost(HttpObject httpObject) {
			                      // TODO: implement your filtering here
			                      return httpObject;
			                  }   
			               };
			            }
			        })
			        .start();
	}
}

 

分享到:
评论

相关推荐

    springboot集成netty实现代理服务器

    springboot集成netty实现代理服务器,实现http和https请求的代理功能

    基于Netty实现的内网穿透&反向代理的工具 (支持TCP上层协议和HTTP的穿透式反向代理).zip

    基于Netty实现的内网穿透&反向代理的工具 (支持TCP上层协议和HTTP的穿透式反向代理).zip

    基于 Java Netty实现的可用于内网穿透的代理工具.zip

    基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于 Java Netty实现的可用于内网穿透的代理工具.zip基于...

    基于Netty框架的Java内网穿透与反向代理工具设计源码

    该项目是一款基于Netty框架开发的Java内网穿透与反向代理工具设计源码,总计包含117个文件,涵盖70个Java源文件、9个PNG图片文件、8...该工具支持TCP上层协议和HTTP/HTTPS端口复用,适用于实现内网穿透和反向代理功能。

    基于Netty框架的Socks5代理服务器.zip

    本项目是一个基于Netty框架实现的Socks5代理服务器,支持Socks5协议的代理功能。项目包含了多个模块,涵盖了从客户端连接处理到服务器端代理转发的完整流程。主要功能包括 处理客户端的Socks5协议请求。 建立与...

    Netty实现高性能的HTTP

    同过netty实现HTTP服务器(或者客户端) 。务器提供诸如HTML文件和其他内容之类的资源,或代表客户端执行其他功能,向客户端返回响应消息。 响应包含有关请求的完成状态信息,并且还可以在其消息正文中包含所请求的...

    使用Java基于Netty+Socks5+TLS实现的代理服务.zip

    在这个项目中,开发者使用Java和Netty框架实现了Socks5代理服务器,并结合了TLS加密,从而创建了一个安全的代理服务。具体实现可能包括以下步骤: 1. **设计协议解析器**:Netty的ChannelHandlerContext和...

    基于netty实现mqtt协议 服务器端开发,可解码http、mqtt协议请求

    1.基于netty绑定端口监听,对于mqtt消息和http请求消息分别绑定不同的监听端口; 2.在MQTTServerInitializer中,分别添加mqtt编码解码器和http编码解码器,并分别将自定义的mqtt消息处理handle类和http消息handle类...

    基于Java开发的一款基于Netty的内网穿透工具,主要用于将内网服务反向代理到公网访问.zip

    Netty是一个高性能、异步事件驱动的网络应用程序框架,常用于开发服务器和客户端的网络应用,如TCP、UDP和HTTP等协议的通信。内网穿透工具,又称为NAT穿透,是一种允许内网设备通过公网进行通信的技术,这对于测试、...

    Springboot+netty实现的流媒体服务(可用于直播点播)

    介绍:Springboot、netty实现的http-flv、websocket-flv流媒体服务(可用于直播点播),支持rtsp、h264、h265等、rtmp等多种源,h5纯js播放(不依赖flash),不需要依赖nginx等第三方,低延迟(支持识别h264、aac...

    netty 代理服务器

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于...在提供的 "netty_proxyServer" 文件中,应该包含了实现这些功能的示例代码,你可以参考它们来加深对 Netty 代理服务器的理解,并根据自己的需求进行定制。

    读书笔记:基于Java Netty 实现的多人联机游戏多人对战的客户端和服务器端.zip

    读书笔记:基于Java Netty 实现的多人联机游戏多人对战的客户端和服务器端

    Java采用Netty实现基于DTU的TCP服务器 + 多端口 + 多协议

    本文将深入探讨如何使用Java的Netty框架实现一个基于DTU(Data Transfer Unit)的TCP服务器,该服务器具备多端口通信和多协议解析的能力。 首先,DTU是一种专门用于远程数据传输的设备,它能够通过GPRS、3G/4G等...

    netty实现sdtp协议

    5. **客户端实现**:对于硬件设备端,可以使用 Netty 的 `Bootstrap` 类创建一个客户端实例,配置相应的 `ChannelInitializer`,并指定服务器的地址和端口。连接成功后,同样通过 `ChannelHandlerContext` 进行数据...

    用netty实现文件传输

    在本文中,我们将深入探讨如何利用 Netty 4.0.23 版本来实现文件的传输,这包括客户端和服务器端的交互过程。 1. **Netty 基本概念** - **BossGroup 和 WorkerGroup**:Netty 中的核心概念,BossGroup 负责接收新...

    netty实现SSL/TSL双向加密认证示例

    Netty 是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。在本文中,我们将深入探讨如何使用 Netty 实现 SSL/TLS(Secure Sockets Layer/Transport Layer Security)...

    使用netty使用http协议开发文件服务器

    在本示例中,我们将探讨如何使用Netty实现一个基于HTTP协议的文件服务器。 首先,我们需要理解HTTP协议。HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,它规定了客户端(如浏览器)和服务器之间数据...

    利用netty实现Modbus TCP client/server

    利用netty实现Modbus TCP client/server READ COILS | 0x01 READ DISCRETE INPUTS | 0x02 READ HOLDING REGISTERS | 0x03 READ INPUT REGISTERS | 0x04 WRITE SINGLE COIL | 0x05 WRITE SINGLE REGISTER | 0x06 ...

    reverse-proxy:通过Netty基于Java NIO的https代理服务器的实现

    通过Netty基于Java NIO的https代理服务器的实现。 这是一个简单的工作原理: 要通过浏览器对其进行测试,我们将需要设置一个虚拟主机名,如下所示: 127.0.0.1 test.localdomain 这样浏览器就能将SNI发送到我们...

    基于Netty实现的文件上传

    本篇将深入探讨如何利用Netty实现文件上传功能,并结合Socket通信和UDP协议进行相关知识的扩展。 首先,我们来关注"基于Netty实现的文件上传"这一主题。Netty提供了丰富的ChannelHandler(通道处理器)和ByteBuf...

Global site tag (gtag.js) - Google Analytics