欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 物联网开发API接口实例

程序员文章站 2022-08-13 09:53:49
C# 物联网开发API接口系列(二)【提纲】1、如何写验证登录(参数:账号,密码)2、switch方法的使用3、json格式的使用方法,一些函数的使用注意事项【开始】<%@ WebHandler Language="C#" Class="check" %>/******************************************* * 功能:管理客户端验证其登录合法性 2020.8.13 * 参数: * action[必须]关键词决定查询类型 *...

C# 物联网开发API接口

【提纲】

1、如何写验证登录(参数:账号,密码)

2、switch方法的使用

3、json格式的使用方法,一些函数的使用注意事项

【开始】

<%@ WebHandler Language="C#" Class="check" %>
/*******************************************
 * 功能:管理客户端验证其登录合法性 2020.8.13
 * 参数:
 * action[必须]关键词决定查询类型
 * 根据自定义方法 传递参数 查询结果反馈打印
 * 举例 iot.jiuai.ltd?action=check&token=身份证&其他参数体
*******************************************/
using System;
using System.Text;
using System.Web;
using System.Data;
using System.Web.Services; //WebMethod 依赖于此引用
using DatabaseHelper; //数据库 增删改查 的方法 配置等
using System.Data.SqlClient; //sql命名空间
using md5Helper; //md5加密 验证密码时可用到

第一行:声明语言及类的名称(文件名称)

第二步:引用命名空间(需要多少引用多少,且第三方的要应用组件或部件)或自写的方法类等

调用接口的方法:url 方式之 get的方法

public class check : IHttpHandler 
{
      //一些公共的变量或必须的参数 在此类最上层申请,多个方法可以共享调用
}

public void ProcessRequest (HttpContext context) 
{
     //所有参数处理入口函数(如果多个方法 通过不同的参数进行 分支处理)
    //此处用的是 switch 语句;下面举例说明
}
public void ProcessRequest (HttpContext context) 
    {
        context.Response.ContentType = "text/plain";//参数类型
        //必须参数 在类的顶层申请变量
        act = context.Request["action"];	//【必须】 参数名称可以自己定义
        token = context.Request["token"];//【必须】访问时携带,登录时查询更新      
        string regpacket="";                      //注册包(设备标识码)
        try
        {
            //********连接数据库***************
            if (!SqlHelper.isConnected)
                SqlHelper.check_SqlConn();           
            //**********************************  
            //本教程 对数据库进行操作 所以必须连接数据库(自定义类方法)
          
            //针对不同类型机型不同分支处理使用switch语句
            switch (act)
            {//目的分类型查询,名称自定义(这里分支名称参数和方法名称一致便于查询调用)
                case "login"://通过账号密码获取身份证token
                    string uc = context.Request["uc"];               //此方法需要2个参数 账号和密码
                    string pwd = context.Request["upwd"];      //密码
                    context.Response.Write(login(uc,pwd));//查询并返回结果json格式
                    break;
                case "getDevList"://获取该token下拥有的设备列表
                    uid = getUidbyToken(token);
                    context.Response.Write(getDevList(token));
                    break;
                case "getUserInfo"://通过token获取身份信息
                    uid=getUidbyToken(token);
                    context.Response.Write(ujson);
                    break;
                case "checkDevValidity"://检查设备是否有效
                    uid = getUidbyToken(token);
                    regpacket = context.Request["regpacket"];
                    context.Response.Write(checkDevValidity(regpacket));
                    break;
                case "actionBox"://激活设备(针对未激活的设备)
                    uid = getUidbyToken(token);
                    regpacket = context.Request["regpacket"];
                    context.Response.Write(actionBox(regpacket));//针对超级管理员可以做各种设备激活
                    break;
                default://所有未定义的方法,一律返回当前时间
                    context.Response.Write(DateTime.Now);
                    break;
            }
        }
        catch (Exception ex)
        {//返回异常/错误描述
            context.Response.Write("Error:" + ex.Message.ToString());
        }        
    }

下一节讲解,根据传递的参数 账号,密码 读取数据库进行匹配

如果成功:返回用户的信息或令牌(token)其他所有操作必须有此身份令牌

如果失败:返回错误提示或异常提示

注意事项:

1)返回值:全部是json格式,至少3部分组成 data,code,time

2)code:成功返回200,失败或无匹配结果返回0,错误或异常返回-1

3)data具体内容,可能是json数据组哦(如列表的[{},{},{}])

4)time系统时间

C# 物联网开发API接口实例

220v交流接触器接法图参考

C# 物联网开发API接口实例

380v接线图参考

说明:控制元件及开关就是 本模块的 某路 NO 出来的线 (一般N线或零线)

从模块的COM进入,从NO出来接线到 交流接触器的 一个L1上

C# 物联网开发API接口实例

弱电控制强电接线图参考

同步连接关注:https://www.toutiao.com/i6860411806385439240/