WEB批量请求器 - 一款基于Java Swing开发的批量HTTP请求工具,支持多线程并发请求、自定义请求头、Cookie管理、代理设置等功能。
- 多种请求方法:支持 GET、POST、HEAD 三种HTTP请求方法
- 批量请求:支持批量导入目标URL,并发处理多个请求
- 多线程支持:支持1-100线程并发请求,提高效率
- 自定义请求头:支持自定义Headers、Cookies、User-Agent
- POST数据支持:支持 application/x-www-form-urlencoded、application/json、multipart/form-data 编码方式
- 代理支持:支持HTTP代理设置
- 302跳转跟随:可选择是否跟随重定向
- 结果导出:支持将结果导出为CSV文件
- 结果预览:右键预览响应Body内容
- 浏览器打开:双击或右键使用默认浏览器打开目标URL
- Java 11+
- Swing (GUI)
- Maven (构建工具)
- Java 11 HttpClient (内置HTTP客户端)
WebBatchRequest/
├── src/main/java/org/example/
│ ├── Main.java # 入口类
│ ├── gui/
│ │ ├── MainFrame.java # GUI主界面
│ │ └── DefaultTextHandler.java # 默认文本提示工具
│ ├── service/
│ │ └── HttpRequestService.java # HTTP请求服务
│ ├── model/
│ │ └── ResponseData.java # 响应数据模型
│ └── util/
│ ├── FileUtil.java # 文件操作工具
│ └── HtmlParser.java # HTML解析工具
├── target/ # 构建输出目录
├── pom.xml # Maven配置
└── README.md # 项目说明
- JDK 11 或更高版本
- Maven 3.x
mvn clean packagejava -jar target/WebBatchRequest-1.0-SNAPSHOT.jar-
输入目标URL:在
targets输入框中输入目标URL,每行一个- 支持完整URL(如
https://www.example.com) - 支持仅域名(如
www.example.com),会自动尝试 http 和 https
- 支持完整URL(如
-
选择请求方法:选择 GET、POST 或 HEAD
-
配置请求参数(可选):
- 自定义Headers
- 自定义Cookies
- 自定义User-Agent
- POST数据(仅POST方法)
-
设置线程数:从下拉框选择并发线程数
-
点击 Run:开始批量请求
-
查看结果:右侧表格显示请求结果,包括状态码、页面标题、服务器Banner、内容长度
通过 文件 -> 导入目标 菜单导入txt文件,每行一个URL。
通过 文件 -> 导出结果 菜单将结果导出为CSV文件。
通过 代理设置 -> 添加HTTP代理 菜单设置代理服务器。
在结果表格上右键可:
- 复制目标地址
- 使用默认浏览器打开
- 预览响应Body
项目采用分层架构设计,分离UI层、业务层和工具层:
| 层级 | 包 | 职责 |
|---|---|---|
| UI层 | gui |
界面展示和用户交互 |
| 业务层 | service |
HTTP请求逻辑处理 |
| 模型层 | model |
数据结构定义 |
| 工具层 | util |
文件操作和文本处理 |
| 类名 | 功能描述 |
|---|---|
Main |
应用入口,启动GUI界面 |
MainFrame |
主界面组件,处理用户交互和结果展示 |
HttpRequestService |
HTTP请求核心服务,支持代理和重定向 |
ResponseData |
响应数据模型 |
FileUtil |
文件读写工具(TXT读取、CSV导出) |
HtmlParser |
HTML标题提取工具 |
DefaultTextHandler |
Swing组件默认文本提示 |
用户输入 → MainFrame.executeRequests() → HttpRequestService.sendRequest() → 解析响应 → 更新表格
- 移除第三方依赖:使用 Java 11 原生 HttpClient 替代
http-request库 - 分层架构:分离UI层、业务层、模型层、工具层
- 代码组织:按职责划分包结构
- 现代化:使用 Java 11 特性(HttpClient、Stream API等)
MIT License
@xiaowei