經(jīng)過(guò)重慶電信智慧總部這一個(gè)項(xiàng)目后,總結(jié)了做這個(gè)項(xiàng)目大量開(kāi)發(fā)的協(xié)議模式http和https批钠。
比如走電信nb平臺(tái)拿取數(shù)據(jù)所采用的帶證書走h(yuǎn)ttps方式的動(dòng)態(tài)庫(kù)開(kāi)發(fā),走第三方平臺(tái)拿取數(shù)據(jù)的http方式開(kāi)發(fā)動(dòng)態(tài)庫(kù)恨溜。
這些方式都有個(gè)共同點(diǎn)垃杖,就是根據(jù)某種規(guī)則男杈,取得設(shè)備數(shù)據(jù)。
這些數(shù)據(jù)格式有JSON调俘,XML伶棒,不規(guī)則字符串等。這些都不是講解的重點(diǎn)彩库;只要拿到數(shù)據(jù)肤无,解析就順風(fēng)順?biāo)恕?/p>
重慶公司目前對(duì)于常規(guī)的http和https開(kāi)發(fā)可以做到5分鐘內(nèi)完成一個(gè)。
一骇钦。下面我們來(lái)快速進(jìn)行拿取數(shù)據(jù)的流程講解:
1.在項(xiàng)目中引用GWHTTPHelper.dll這個(gè)類庫(kù)
2.在需要使用的類頁(yè)面使用using指令? ?using GWHTTPHelper;
3.根據(jù)場(chǎng)景選用合適的方法去調(diào)用:
? ? ? 有如下三種調(diào)用方式
? ? ? ? ?1.Http協(xié)議的調(diào)用方式宛渐,
? ? ? ? ?2.Https協(xié)議不帶證書的調(diào)用方式,?
? ? ? ? ?3.?Https協(xié)議帶證書的調(diào)用方式
4.使用方法采用靜態(tài)類方法調(diào)用:
? ? ?LSHHttp.HttpsUrl(參數(shù)們)
二眯搭。下面我們使用兩個(gè)例子來(lái)說(shuō)明
? HTTP例子:
ResultData? http =LSHHttp.HttpsUrl(“www.weather.com.cn/data/sk/101041200.html”, “”, null,"GET", “application/x-www-form-urlencoded”, true);
????一窥翩。這個(gè)例子說(shuō)明了:
我們要訪問(wèn)www.weather.com.cn/data/sk/101041200.html這個(gè)網(wǎng)址,采用GET方式訪問(wèn)鳞仙,默認(rèn)編碼格式的請(qǐng)求參數(shù)寇蚊,application/x-www-form-urlencoded,http類型繁扎。
????二幔荒。下面我們對(duì)參數(shù)進(jìn)行詳細(xì)解釋:
????????參數(shù)說(shuō)明(按順序):
????????參數(shù)一:訪問(wèn)的url地址
????????參數(shù)二:請(qǐng)求的參數(shù)(沒(méi)有寫則填寫“”)
????????參數(shù)三:請(qǐng)求頭參數(shù)糊闽,沒(méi)有填寫null;
????????參數(shù)四:請(qǐng)求方式get或者post
????????參數(shù)五:請(qǐng)求編碼的格式鍵值對(duì)形式填寫application/x-www-form-urlencoded爹梁,無(wú)參數(shù)可以不填寫
????????Json請(qǐng)求參數(shù)形式填寫application/json
????????參數(shù)六:通信協(xié)議http或者h(yuǎn)ttps右犹,填寫bool類型,true為http
????????方法調(diào)用返回值:為ResultData類型
??????????? 解釋ResultData:
??????? ?????????字段:Header??? 響應(yīng)頭信息? WebHeaderCollection類型
????????????????字段:ResultString 遠(yuǎn)程服務(wù)器響應(yīng)結(jié)果信息string類型
????????????????字段:Msg? 接口調(diào)用狀況? ok成功?? no失敗? string類型
????????????????字段:MsgInfo? 接口調(diào)用情況??? string類型
? ??????????????????不帶證書的https協(xié)議和此調(diào)用方式類似只是參數(shù)六變?yōu)榱?/b>false
HTTPS帶證書例子:
? ? ? ? ? ?string?apiPath = "device.api.ct10649.com:8743/iocm/app/sec/v1.1.0/login";??
??????????? string?body = "appId=" + "eZhYMLNSPTTk8BF1vcLEW6O03lUa"+ "&secret=" + "faF9zwbgHMA_w3lh6HT4Q2EQRs4a";
??????????? string method = "POST";
??????????? string contenttype = "application/x-www-form-urlencoded";
??????????? WebHeaderCollection? headers =newWebHeaderCollection();
??????????? ResultData? https?= LSHHttp.HttpsUrlPlus(apiPath,body, header, method, contenttype, "D:\AlarmCenter\data\outgoing.CertwithKey.pkcs12", "IoM@1234");
參數(shù)說(shuō)明(按順序):
參數(shù)一:訪問(wèn)的url地址
參數(shù)二:請(qǐng)求的參數(shù)(沒(méi)有寫則填寫“”)
參數(shù)三:請(qǐng)求頭參數(shù)姚垃,沒(méi)有填寫null念链;
參數(shù)四:請(qǐng)求方式get或者post
參數(shù)五:請(qǐng)求編碼的格式鍵值對(duì)形式填寫application/x-www-form-urlencoded,無(wú)參數(shù)可以不填寫
參數(shù)六:公鑰證書的文件所在路徑(包含文件)
參數(shù)七:訪問(wèn)遠(yuǎn)端服務(wù)器驗(yàn)證密碼(配合公鑰證書使用)
方法調(diào)用返回值:為ResultData類型
??? 解釋ResultData:
??????? ?字段:Header??? 響應(yīng)頭信息? WebHeaderCollection類型
????????字段:ResultString 遠(yuǎn)程服務(wù)器響應(yīng)結(jié)果信息string類型
????????字段:Msg? 接口調(diào)用狀況? ok成功?? no失敗? string類型
????????字段:MsgInfo? 接口調(diào)用情況??? string類型
作者--雷斯寒
2019-05-27完成
期待大家多多提意見(jiàn)多大交流积糯,共同成長(zhǎng)進(jìn)步
我的聯(lián)系方式qq:1607797998掂墓。
想要進(jìn)行動(dòng)態(tài)庫(kù)使用的,我過(guò)幾天會(huì)發(fā)布到服務(wù)器上看成,供大家下載君编,目前可以聯(lián)系我獲取動(dòng)態(tài)庫(kù)。