web api接口开发实例_C# 物联网开发API接口系列(4)
生活随笔
收集整理的這篇文章主要介紹了
web api接口开发实例_C# 物联网开发API接口系列(4)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C# 物聯網開發API接口系列(四)
#久愛物聯網#MQTT#
【提綱】
1)獲取設備列表(某用戶的)
2)單獨檢查設備是否存在合法
【正文】
/// /// 獲取設備列表 /// /// 令牌 /// private string getDevList(string _token) { string result = ""; int listnum = 0; StringBuilder sb = new StringBuilder(); try { if (SqlHelper.isConnected) { SqlConnection SqlConn = new SqlConnection(SqlHelper.ConnString); if (SqlConn.State != ConnectionState.Connecting) { SqlConn.Open();// 打開數據庫連接 } //注意:參數是token查詢用的是 uid 之前有一方法已經調用了 uid = getUidbyToken(token); SqlCommand sqlCmd = new SqlCommand("SELECT * FROM box_List WHERE bForUid=" + uid, SqlConn); SqlDataReader rd = sqlCmd.ExecuteReader();//返回的是記錄集 if (rd.HasRows) { while (rd.Read()) { listnum++; sb.AppendFormat("{" + string.Format(""regpacket":"{0}","boxname":"{1}","actived":{2}", rd["bRegpacket"].ToString(), rd["bName"].ToString(),Convert.ToInt16(rd["bStatus"])) + "}");//可繼續擴展其他屬性 sb.AppendFormat(",");//最后一條需要處理此符號 } sb.Remove(sb.ToString().LastIndexOf(','), 1);//處理最后一位符號(如何處理最后一個逗號) } rd.Close();//統一釋放資源 rd = null; sqlCmd = null; SqlConn.Close();//關閉數據庫連接 SqlConn = null;//否則不更新原內容 } //當data為數組時加[] 非數組及json格式寫法 if(listnum>0) result = string.Format(""data":[{0}],"code":{1},"time":"{2}"", sb.ToString().Replace("{", "{").Replace("}", "}"), 200, svrNowTime()); else result = string.Format(""data":"{0}","code":{1},"time":"{2}"", "請檢查參數的合法性:" + _token, 0, svrNowTime()); } catch (Exception ex) { result = string.Format(""data":"[ERROR]:{0}","code":{1},"time":"{2}"", ex.Message.ToString(), -1, DateTime.Now); } return "{"+result+"}";//組合成標準的json格式的頭尾 } /// /// 驗證智能模塊的合法性 /// /// 注冊包 /// private string checkDevValidity(string reg) { string _retu = ""; try { SqlConnection SqlConn = new SqlConnection(SqlHelper.ConnString); if (SqlConn.State != ConnectionState.Connecting) { SqlConn.Open();// 打開數據庫連接 } //bStatus 1啟用0禁用-1列黑 SqlCommand sqlCmd = new SqlCommand("SELECT * FROM box_List WHERE bStatus=1 AND bForUid=" + uid + " AND bRegpacket='" + reg + "'", SqlConn); SqlDataReader rd = sqlCmd.ExecuteReader(); if (rd.HasRows) { rd.Read(); _retu = string.Format(""data":"[OK]{0}","code":{1},"time":"{2}"", rd["bRegpacket"], 200, DateTime.Now); } else { _retu = string.Format(""data":"[SORRY]{0}","code":{1},"time":"{2}"", "驗證失敗,請檢查參數是否正確!", 0, DateTime.Now); } } catch (Exception ex) { _retu = string.Format(""data":"[ERROR]:{0}","code":{1},"time":"{2}"", ex.Message.ToString(), -1, DateTime.Now); } return "{" + _retu + "}"; //重新組合標準json格式頭尾{} } //通過token獲取uid private int getUidbyToken(string tok) { int _uid; try { SqlConnection SqlConn = new SqlConnection(SqlHelper.ConnString); if (SqlConn.State != ConnectionState.Connecting) { SqlConn.Open();// 打開數據庫連接 } SqlCommand sqlCmd = new SqlCommand("SELECT top 1 uid,fuid,uToken,uTel,uName FROM user_List WHERE uToken='" + tok + "' AND uStatus=1", SqlConn);//uRole=8 SqlDataReader rd = sqlCmd.ExecuteReader();//返回的是記錄集 AND uStatus=1 if (rd.HasRows) { if (rd.Read()) { uid = Convert.ToInt16(rd["uid"]);//***主要查詢這個 fuid = Convert.ToInt16(rd["fuid"]); utoken = rd["uToken"].ToString(); utel = rd["uTel"].ToString(); uname = rd["uName"].ToString(); // ujson = "{"uid":" + uid + ","fuid":" + fuid + ","utoken":"" + utoken + "","uname":"" + uname + "","utel":"" + utel + ""}"; } _uid = uid;//返回這個 } else { _uid = -1;//沒找到 } } catch (Exception ex) { _uid = 0;//錯誤異常時0 } return _uid; }合法驗證通過返回[OK]注冊包格式 條件注冊包
獲取設備列表(條件:令牌)
成功獲取令牌
獲取令牌失敗
獲取用戶信息(令牌)
到此為止,主要接口及方法已經講解一遍!舉一反三,觸類旁通,學會學習 就很快了!
下一步,將接口部署到服務器下,進行訪問即可!
在管理客戶端調用接口,根據返回json數據進行解析(了解json前端知識ajax)
進行各種操作即可!
有機會時間 會繼續分享如何前端驗證(ajax)解析數據并展現到頁面上(H5)
最終實現在此模塊上所有功能
內嵌WEB模擬發送串口指令
總結
以上是生活随笔為你收集整理的web api接口开发实例_C# 物联网开发API接口系列(4)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stl源码剖析_《STL源码剖析》学习笔
- 下一篇: c# char unsigned_dll