C# 物联网开发API接口实例
程序员文章站
2022-04-17 09:00:27
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系统时间
220v交流接触器接法图参考
380v接线图参考
说明:控制元件及开关就是 本模块的 某路 NO 出来的线 (一般N线或零线)
从模块的COM进入,从NO出来接线到 交流接触器的 一个L1上
弱电控制强电接线图参考
上一篇: 转基因食品有哪些?它们都有什么特点
下一篇: Postgresql9.6--数据类型