日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

web api接口开发实例_C# 物联网开发API接口系列(4)

發布時間:2024/9/19 C# 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。