1 Star 2 Fork 0

桔子雨/VB.net WebAPI类库

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

VBWebAPI类库

介绍

由于VS中没有vb.net的WebAPI模板,自己开发中有时候又需要,因此开发了VBWebAPI这个库(VB.NET和C#都可以用),采用 VB.NET 开发, 无需IIS,一个DLL就🆗 ,学习Java中的jetty容器,采用异步方法(事件) + Handler的方式来实现。WebAPI类可以用来文字通信和文件发送,另外封装了一个WebSocket客户端用来接收发送文字信息。。类库DLL体积非常小,使用也非常简单,方便集成。

WebAPI示例代码

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
  2. 在vs里引入dll即可开始使用。

WebAPI服务端

  1. 添加路由 Routes.Add
  2. 添加路由白名单RouteWhiteList.Add。白名单内的路由无需验证授权即可访问。
  3. 支持授权验证,简单token字符串和jwt字符串。Authorization字段
  4. 异步发送文字:responsse.WriteAsync 默认UTF8编码
  5. 异步发送文件: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 可自定义消息内容
MIT License Copyright (c) 2024 桔子雨 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

用VB.NET+HttpLisener开发的WebAPI,不依赖IIS,一个DLL就够了。 展开 收起
Visual Basic .NET
MIT
取消

发行版 (3)

全部

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/jzy168/vbnet-web-api.git
git@gitee.com:jzy168/vbnet-web-api.git
jzy168
vbnet-web-api
VB.net WebAPI类库
master

搜索帮助