# VB.net WebAPI类库 **Repository Path**: jzy168/vbnet-web-api ## Basic Information - **Project Name**: VB.net WebAPI类库 - **Description**: 用VB.NET+HttpLisener开发的WebAPI,不依赖IIS,一个DLL就够了。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: https://www.juziyu.cn/ - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2024-10-22 - **Last Updated**: 2024-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: VB, vbnet, WebApi ## README # VBWebAPI类库 #### 介绍 :heart: 由于VS中没有vb.net的WebAPI模板,自己开发中有时候又需要,因此开发了VBWebAPI这个库(VB.NET和C#都可以用),采用 VB.NET 开发, **无需IIS,一个DLL就🆗** ,学习Java中的jetty容器,采用异步方法(事件) + Handler的方式来实现。WebAPI类可以用来文字通信和文件发送,另外封装了一个WebSocket客户端用来接收发送文字信息。。类库DLL体积非常小,使用也非常简单,方便集成。 :heart: WebAPI示例代码 ```vbnet Module Test Private ReadOnly svr As New WebAPI Sub Main() svr.SimpleToken = "333" '简单token验证(自动) 'svr.JWT.Enabled = True '启用JWT验证(自动)。默认加密密码为 mr123456 ,建议修改 '两个验证同时开启时,JWT验证优先级高于简单token验证 '添加路由映射 svr.Routes.Add("/api/v1/hello", AddressOf UserSub) 'svr.RouteWhiteList.Add("/api/v1/hello") '白名单中的路由无需验证 svr.StartServer() '启动 WebAPI 服务,默认端口8090 传入参数可修改端口 Console.WriteLine($"VBWebApi服务已启动!访问地址:http://localhost:8090/api/v1/hello 按任意键退出。") Console.ReadKey() '保持窗口运行,直到按下任意键退出 End Sub Private Async Function UserSub(request As HttpListenerRequest, response As HttpListenerResponse) As Task If request.HttpMethod.ToUpper = "GET" Then '不判断则表示支持所有请求方式 '处理GET请求 Await response.WriteAsync("Hello vb!") Else Await response.WriteAsync("访问方式错误,只支持GET请求!") End If End Function End Module ``` #### 软件架构 VB.NET + HttpLisener + WebSockets + Handler 因为是基于.Net Standard 2.0因此本库是 **跨平台的** 。 ### 使用教程 1. [下载编译好的dll](https://gitee.com/jzy168/vbnet-web-api/releases/) 2. 在vs里引入dll即可开始使用。 #### WebAPI服务端 1. 添加路由 `Routes.Add` 1. 添加路由白名单`RouteWhiteList.Add`。白名单内的路由无需验证授权即可访问。 1. 支持授权验证,简单token字符串和jwt字符串。`Authorization`字段 1. 异步发送文字:`responsse.WriteAsync` 默认UTF8编码 1. 异步发送文件:`responsse.SendFileAsync` 自动设置响应头标识 #### WebSocket客户端 1. WebSocket已连接事件:`OnConnected` 2. WebSocket收到消息:`OnMessageReceived` 3. WebSocket断开连接事件:`OnDisconnected` 4. WebSocket错误事件:`OnError` 5. 启动WebSocket连接:`StartConnect` 6. 关闭WebSocket连接:`StopConnect` 7. 发送消息:`SendMessageAsync` 8. 发送ping心跳:`SendPingAsync` 可自定义消息内容