最近把一個二十年前用VFP開發的進銷存管理軟件的數據庫升遷到了SqlServer中,唉!這是多年前就想做的事了,一直拖到現在才做。
然后就想着怎么用手機連接到后台的SqlServer數據庫,這樣隨時隨地都能查看報表了。想來想去好像還是做個微信小程序最簡單點,但是直連數據庫端口好像太不安全,也太落后了,當然小程序如何直連SqlServer也不懂,也不知道行不行,簡單不簡單,現在也不去研究了。
所以就先做了個.net的webservice接口,是用WCF做的,套在數據庫前端,為此還用了EF6.2跟數據庫連接,EF也是早就想研究的東西了,用起來確實是比較簡單方便的。
接下來就是研究小程序怎么接到這個webservice上的問題了,在網上查了些資料,說的都比較簡單,也互不相同,試了下都不行,只能自己研究了。因為連接webservice是用的http協議,就想到了以前用過的http sniffer工具,先用c#做個測試客戶端連到webservice上,調通后就下了個http sniffer安裝,沒想到win7下裝不進,wincap太老了,操作系統不支持了。又換到XP環境安裝,裝好后試了下,卻截獲不了c#客戶端的信息,普通上網都能截的,不知道是什么原因。
又上網查別的截取工具,查到個Microsoft Network Monitor,是微軟自己做的,win7下也能安裝,就馬上下了裝上了,一下就截到了信息,根據截到的信息,放到微信小程序中再去測試,試了幾次還是不行,又到網上查資料,查到一篇關於小程序發送SOAP信息連接java webservice的文章,結合在一起再進行修改測試,最后成功連接並獲取了正確的返回結果。
小程序中主要代碼如下:
這里關鍵是發送了一個http協議的request的頭信息和一個SOAP協議的data數據請求體信息。
因為返回的是XML格式的信息,為了獲得其中需要的信息,又查資料用到了一個xmldom的第三方庫來解析XML格式信息。
這個問題終於解決了,因為是測試,所以返回結果是一段字符串,比較簡單,如果返回一個包含具體數據的對象,還要對XML數據進一步進行加工提取。
還有關於request發送的網址要加入小程序的合法域名的問題,要在開發工具中點“測試號”,在微信平台上設置添加一下的。
最后就是發布小程序的問題,好像還挺麻煩的,以后再說吧。