|
发表于 2024-8-21 19:19:29
|
显示全部楼层
广东省广州市
.版本 2
.支持库 spec
.子程序 __启动窗口_创建完毕
.局部变量 http回调函数, 整数型
.局部变量 WebSocket回调函数, 整数型
.局部变量 Tcp回调函数, 整数型
.局部变量 错误信息, 文本型
' Sunny中间件 在模块中已是全局变量,直接使用即可
Sunny中间件.绑定端口 (2022)
http回调函数 = 到整数 (&__示例__HTTP回调函数)
WebSocket回调函数 = 0
Tcp回调函数 = 0
Sunny中间件.绑定回调地址 (http回调函数, Tcp回调函数, WebSocket回调函数)
' Sunny中间件.设置IE代理 () ' 设置IE代理
' Sunny中间件.关闭IE代理 ()'取消IE代理
.如果 (Sunny中间件.启动 ())
' 启动,如果 启动进程代理 启动失败 或者启动成功后捕获不到数据,请搭配Proxifier使用
.如果真 (Sunny中间件.进程代理_加载驱动 () = 假)
信息框 (“启动进程代理失败,请尝试使用管理员运行”, 0, , )
结束 ()
.如果真结束
' 针对所有进程
' Sunny中间件.进程代理_设置捕获任意进程 (真)
' 或者 针对指定进程名
Sunny中间件.进程代理_添加进程名 (“we.exe”)
Sunny中间件.进程代理_添加进程名 (“Chat.exe”)
Sunny中间件.进程代理_添加进程名 (“XXXXX.exe”)
' 设置后,若是没有捕获到相应数据,不重启本程序,重启目标程序,后再试!
信息框 (“启动成功”, 0, , )
.如果真 (Sunny中间件.安装证书 (错误信息) = 假)
信息框 (“自动安装证书到系统失败,请手动安装证书!” + #换行符 + #换行符 + 错误信息, 0, “证书安装失败”, )
.如果真结束
' 安装证书请阅读:http://esunny.vip/ 中的 [Sunny网络中间件-示例文档]->[(教程)安装证书]
.否则
信息框 (Sunny中间件.取错误 (), #错误图标, “启动失败”, )
.如果结束
.子程序 __示例__HTTP回调函数
.参数 SunnyContext, 整数型, , Sunny中间件可创建多个 由这个参数判断是哪个Sunny回调过来的
.参数 请求唯一ID, 整数型
.参数 MessageId, 整数型
.参数 消息类型, 整数型, , #Sunny_消息类型_
.参数 请求方法, 文本型
.参数 请求地址, 文本型
.参数 err, 文本型
.参数 pid, 整数型, , 进程PID 若等于0 表示通过代理远程请求 无进程PID
.局部变量 sunny, Sunny
.局部变量 bin, 字节集
' 必须使用该语句取回sunny对象
sunny = MessageIdToSunny (MessageId)
调试输出 (请求地址)
' 执行流程是 发起请求->请求完成/请求失败
.判断开始 (消息类型 = #Sunny_消息类型_发起请求) ' 发起请求 http/https请求 ' 【sunny.请求】 可 在 【发起请求、请求完成、请求失败】 中使用
调试输出 (“消息ID”, 请求唯一ID, “开始请求”, “URL”, 请求地址)
' 修改提交数据
.如果真 (请求方法 = “POST”)
bin = sunny.请求.取POST数据_字节集 ()
bin = 子字节集替换 (bin, 到字节集 (“SunnyNet”), 到字节集 (“Hello Sunny”), , )
sunny.请求.修改Body_字节集 (bin)
.如果真结束
' 对这个请求设置代理
.如果真 (寻找文本 (请求地址, “ip138.com”, , 假) ≠ -1)
' ' 设置HTTP代理 admin=账号 123456=密码 127.0.0.1:8888=上游代理
' sunny.请求.置代理 (“http://admin:123456@127.0.0.1:8888”)
' ' 没有账号
' sunny.请求.置代理 (“http://:@127.0.0.1:8888”)
' ' 或者
' sunny.请求.置代理 (“http://127.0.0.1:8888”)
' ' 设置Socket5代理 admin=账号 123456=密码 127.0.0.1:8888=上游代理
' sunny.请求.置代理 (“socket5://admin:123456@127.0.0.1:8888”)
' ' 没有账号
' sunny.请求.置代理 (“socket5://:@127.0.0.1:8888”)
' ' 或者
' sunny.请求.置代理 (“socket5://127.0.0.1:8888”)
.如果真结束
' 直接回复文件【2022/03/02新增】
' sunny.响应.修改或新增协议头 (“Content-Type: text/html” + #换行符 + “Server: Sunny”)
' sunny.响应.修改响应内容_字节集 (读入文件 (“C:\Users\qinka\Desktop\node.js”))
' 返回 ()
' 请注意 在【发起请求】中修改响应数据为 直接回复文件
' 将 不会执行【请求完成】【请求失败】
' 设置数据不需要指定文件长度,内部自动计算
' sunny.请求.终止发送() '使用后 这个请求将不会发送出去 2022-09-16 新增【只能在 发起请求 中使用】
' sunny.请求.置请求超时 (15 × 1000) ' 对这个请求设置15秒的超时时间
.判断 (消息类型 = #Sunny_消息类型_请求完成) ' 服务器返回数据
' 修改响应请求
.如果真 (寻找文本 (请求地址, “game/map_info”, , 假) ≠ -1)
bin = sunny.响应.取响应Body ()
bin = 子字节集替换 (bin, 到字节集 (“你好”), 到字节集 (“哈喽”), , )
sunny.响应.修改响应内容_字节集 (bin)
.如果真结束
' 【sunny.响应】 仅可在 【请求完成】 中使用 在【发起请求、请求失败 中操作响应对象,只能操作设置数据】
调试输出 (“消息ID”, 请求唯一ID, “请求完成”, sunny.响应.取正文长度 (), “URL”, 请求地址)
.判断 (消息类型 = #Sunny_消息类型_请求失败) ' http/https请求 请求失败
' 返回数据【2023/01/06新增】
' sunny.响应.修改状态码 (200)'不设置默认就是200
' sunny.响应.修改或新增协议头 (“Content-Type: text/html” + #换行符 + “Server: Sunny”)
' sunny.响应.修改响应内容_字节集 (读入文件 (“C:\Users\qinka\Desktop\node.js”))
调试输出 (“消息ID”, 请求唯一ID, “URL”, 请求地址, “请求失败:” + err)
.默认
.判断结束
返回 ()
|
|