更新记录
1.1.2(2026-04-15)
- 新增 iOS 平台支持,使用 TCPSocketServer 实现 HTTP 服务
- 支持 HTTP 请求处理和响应
- 支持代理转发功能
- 支持 CORS 跨域访问
1.1.1(2026-04-14)
更新demo
1.1.0(2026-04-14)
- 新增 iOS 平台支持,使用 Network 框架实现 HTTP 服务器
- 完善静态文件服务,支持 iOS 和 Android 双平台
- 添加路径存在性检查,自动处理无效根目录
- 优化回调函数生命周期管理,防止异步操作完成前释放
- 完善 MIME 类型识别,支持常见文件类型
- 支持代理规则管理和 HTTP 请求转发
- 支持 CORS 跨域访问
- 提供 getStaticPath 方法获取静态目录绝对路径
平台兼容性
uni-app(5.05)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | √ | - | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.87)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | √ | √ | √ | - |
d-http-server
HTTP 服务器插件,支持在 Android、iOS 和 HarmonyOS 平台上创建本地 HTTP 服务器。
当前版本:v1.1.0
功能特性
- 支持 Android、iOS、HarmonyOS 三平台
- 支持自定义端口配置
- 支持 CORS 跨域配置
- 支持静态文件服务(HTML、CSS、JS、图片等)
- 支持 API 代理转发
- 支持添加/移除代理规则
- 提供启动、停止、状态查询功能
- 提供 getStaticPath 方法获取静态目录绝对路径
- 精简设计,适合打包自定义基座
技术实现
- Android:使用 NanoHTTPD 库(轻量级 HTTP 服务器)
- iOS:使用 Network 框架(NWListener)实现
- HarmonyOS:使用 TCPSocketServer 实现 HTTP 协议
快速开始
1. 配置运行环境(仅自定义基座需要)
在 HBuilderX 中打包自定义基座前,需要配置 Android 运行环境:
- Gradle:7.5 及以上版本(不支持 9.0.0+)
- JDK:17 及以上版本
- Android SDK:build-tools 30.0.0+,platforms android-30+
配置路径:HBuilderX → 设置 → 运行配置
2. 在页面中使用
import * as HttpServer from '@/uni_modules/d-http-server'
// 启动服务器
HttpServer.startServer({
port: 8080,
allowCors: true,
success: (res) => {
console.log('服务器启动成功:', res.message)
},
fail: (res) => {
console.log('服务器启动失败:', res.errMsg)
}
})
// 停止服务器
HttpServer.stopServer({
success: (res) => {
console.log('服务器停止成功:', res.message)
}
})
// 获取服务器状态
HttpServer.getServerStatus({
success: (res) => {
console.log('服务器状态:', res.running ? '运行中' : '未运行')
}
})
API 接口
startServer - 启动 HTTP 服务器
参数:
port:端口号(必填)rootPath:根目录路径(可选)allowCors:是否允许 CORS(可选,默认 false)proxyEnabled:是否启用代理(可选,默认 false)proxyRules:代理规则数组(可选)success:成功回调fail:失败回调complete:完成回调
返回值:
success:是否成功message:操作信息serverId:服务器 ID(格式:平台_端口)ipAddress:服务器 IP 地址accessUrl:可访问的 URL 地址rootPath:根目录路径
示例:
HttpServer.startServer({
port: 8080,
rootPath: '/static',
allowCors: true,
proxyEnabled: true,
proxyRules: [
{ path: '/api', target: 'https://api.example.com' }
],
success: (res) => {
console.log('服务器地址:', res.accessUrl)
},
fail: (err) => {
console.log('启动失败:', err.errMsg)
}
})
stopServer - 停止 HTTP 服务器
参数:
success:成功回调fail:失败回调complete:完成回调
返回值:
success:是否成功message:操作信息
getServerStatus - 获取服务器状态
参数:
success:成功回调fail:失败回调complete:完成回调
返回值:
running:是否运行中port:端口号rootPath:根目录路径serverId:服务器 IDipAddress:服务器 IP 地址accessUrl:可访问的 URL 地址
addProxyRule - 添加代理规则
参数:
rule:代理规则对象(必填)path:代理路径前缀(如/api)target:目标服务器地址(如https://api.example.com)method:请求方法(可选,可选值:GET、POST、PUT、DELETE、PATCH、ALL,默认ALL)headers:自定义请求头(可选,Map 类型)timeout:超时时间(可选,单位毫秒,默认 30000)
success:成功回调fail:失败回调complete:完成回调
返回值:
success:是否成功message:操作信息ruleId:规则 ID(通常是 path)
示例:
HttpServer.addProxyRule({
rule: {
path: '/api',
target: 'https://api.example.com',
method: 'ALL',
timeout: 30000
},
success: (res) => {
console.log('代理规则已添加:', res.ruleId)
},
fail: (err) => {
console.log('添加失败:', err.errMsg)
}
})
removeProxyRule - 移除代理规则
参数:
path:代理路径(必填)success:成功回调fail:失败回调complete:完成回调
返回值:
success:是否成功message:操作信息
示例:
HttpServer.removeProxyRule({
path: '/api',
success: (res) => {
console.log('代理规则已移除')
}
})
getProxyRules - 获取代理规则列表
参数:
success:成功回调fail:失败回调complete:完成回调
返回值:
success:是否成功rules:代理规则数组count:规则数量
错误码
遵循 uni 错误码规范,以 90 开头:
9010001:服务器启动失败9010002:服务器停止失败9010003:服务器配置错误(端口无效等)9010004:服务器状态获取失败9010005:代理规则操作失败9010006:代理请求转发失败
注意事项
-
端口选择:
- 避免使用系统保留端口(1-1023)
- 建议使用 8000-9999 范围内的端口
- 确保端口未被其他应用占用
-
权限配置:
- Android:已自动配置 INTERNET 权限
- HarmonyOS:使用系统内置 API,无需额外权限
-
自定义基座打包:
- 首次打包会自动下载 NanoHTTPD 依赖(约 70KB)
- 确保网络连接正常,能访问 Maven 中央仓库
- 打包成功后,依赖会缓存在自定义基座中
-
代理功能使用:
- 代理功能用于将本地服务器的请求转发到目标服务器
- 代理路径支持前缀匹配,如
/api会匹配/api/user、/api/list等 - 目标地址需要以
http://或https://开头 - 代理支持所有 HTTP 方法(GET、POST、PUT、DELETE、PATCH)
- 可以设置自定义请求头和超时时间
-
使用场景:
- 适用于本地开发、调试和测试
- 可作为本地 API 服务器
- 可用于跨域访问和 API 代理转发
- 不建议用于生产环境的高性能场景
平台兼容性
| 平台 | 支持情况 | 最低版本 | 依赖库 | 说明 |
|---|---|---|---|---|
| Android | ✅ 完整支持 | Android 5.0 (API 21) | NanoHTTPD 2.3.1 | 完整 HTTP 服务器功能 |
| iOS | ✅ 完整支持 | iOS 12.0 | NWListener | 完整 HTTP 服务器功能 |
| HarmonyOS | ✅ 完整支持 | HarmonyOS API 10 | @ohos.net.socket | 基于 TCP Socket 实现 HTTP 协议 |
版本历史
1.1.2(2026-04-15)
- 完善 HarmonyOS 平台实现,使用 TCPSocketServer 实现 HTTP 服务
- 支持 HTTP 请求处理和响应
- 支持代理转发功能
- 支持 CORS 跨域访问
1.1.1(2026-04-14)
- 修复 HarmonyOS 平台编译错误
- 优化 HarmonyOS 平台实现为模拟模式
1.1.0(2026-04-14)
- 新增 iOS 平台支持,使用 Network 框架实现 HTTP 服务器
- 完善静态文件服务,支持 iOS 和 Android 双平台
- 添加路径存在性检查,自动处理无效根目录
- 优化回调函数生命周期管理,防止异步操作完成前释放
- 完善 MIME 类型识别,支持常见文件类型
- 支持代理规则管理和 HTTP 请求转发
- 支持 CORS 跨域访问
- 提供 getStaticPath 方法获取静态目录绝对路径
1.0.0(2026-04-14)
- 初始版本
- 支持 Android 平台
- 实现基本的 HTTP 服务器功能
- 支持 CORS 跨域配置
- 精简设计,适合自定义基座打包
技术支持
如有问题,请参考:

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 28
赞赏 0
下载 11538365
赞赏 1904
赞赏
京公网安备:11010802035340号