C#訪問帶有安全協議的Webservice(https、生成wsdl代理類)
1.最近公司上專案,其中有一個小欄目 是查詢身份證的,就是輸入身份證碼和姓名返回你的地址和圖片的這種,也就是公安部全國公民身份資訊系統(NCIIS)我是第一次,中間有幾個問題第一個難題是這樣的,要驗證證書,當時給文件的時候只有一個地址,也只有安裝上了證書檔案才能訪問,基本的方法是這樣的
按上面寫的把官方提共的地方輸入到位址列裡,然後回車,然後會出現這個對話方塊,我們只要單擊檢視證書,就行了,在後面出現的介面 裡單擊安裝就可以了
如果要匯出則選擇“複製到檔案” ==下一步 “Base64編碼x.509 (.cer)(s)”選擇這一項下一步完成就OK了。
然後把你的證書檔案複製到一個位置方便使用。檔名假設為tingting.cer(cer表示證書檔案);
下面獲取WSDL檔案(C#):
程式碼Application.StartupPath + "tingting.cer/" 這裡就是我們剛才匯出的證書檔案的地址,當然我們在實際應用中要寫成自己的才行;
request.UserAgent ="Client Cert Sample"
下面是詳細的程式碼:
程式碼得到WSDL的XML文件如下:
程式碼我們得把它轉化成一個類檔案才行,
方法很簡單,這是在我知道 了之後才這樣講的,呵呵
利用wsdl.exe生成webservice代理類:
根據提供的wsdl生成webservice代理類
1、開始->程式->Visual Studio 2008 命令提示
2、輸入如下紅色標記部分
D:\Program Files\Microsoft Visual Studio 8\VC>wsdl /language:c# /n:TestDemo /out:d:\text\TestService.cs D:\text\TestService.wsdl
在d:/text下就會產生一個TestService.cs 檔案
注意:D:\text\TestService.wsdl 是wsdl路徑,可以是url路徑
如果 你想知道WSDL檔案是怎麼使用的話,直接寫WSDL回車就可以,會出顯所有的說明
還有一個方法更方便
首先開啟Visual Studio 2008,選擇選單"工具"-"外部工具"開啟外部工具對話方塊,如圖
,單擊“新增”按鈕新增新工具,然後在“標題”行中輸入"WSDL生成代理類","命令"行中輸入"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\wsdl.exe"(wsdl.exe檔案的路徑),"引數"行中輸入"/l:cs /out:", 單擊"初始目錄"行右邊的三角按鈕選擇"項目錄",勾選"使用輸出視窗"和"提示輸入引數",然後確定儲存。
再開啟選單"工具"可以看到多了一個"WSDL生成代理類"選單,這時先選定一個存放生成的代理類的資料夾(必須位於並且包含於當前解決方案中),然後單擊"WSDL生成代理類"選單,彈出如下對話方塊,然後你只需在"/l:cs /out:"後面空一格(必須空一格)再貼上WebService檔案的http地址如https://www.cnblogs.com/ ?wsdl,單擊"確定"看看發生了什麼?是的,輸出視窗會顯示生成了一個類及其存放的位置,看看是不是你選定的資料夾,找到這個路徑看看是不是有一個類,你會發現這個類跟上面使用命令列生成的類一模一樣,個人覺得這樣操作起來更簡單一點。
生成的類檔案裡會包括 方法使用和怎麼樣和伺服器溝通,我們只要呼叫 方法就要可以了,
類檔案如下
程式碼有了這個類,最後一步就是實現調取資料了,
程式碼到這裡我們已經和伺服器溝通上了。好,到此,獲取資料ing……