C#访问带有安全协议的Webservice(https、生成wsdl代理类)

引自:http://www.cnblogs.com/angleSJW/archive/2010/03/16/1687442.html



1.最近公司上项目,其中有一个小栏目 是查询身份证的,就是输入身份证码和姓名返回你的地址和图片的这种,也就是公安部全国公民身份信息系统(NCIIS)我是第一次,中间有几个问题第一个难题是这样的,要验证证书,当时给文档的时候只有一个地址,也只有安装上了证书文件才能访问,基本的方法是这样的

      按上面写的把官方提共的地方输入到地址栏里,然后回车,然后会出现这个对话框,我们只要单击查看证书,就行了,在后面出现的界面 里单击安装就可以了

如果要导出则选择“复制到文件” ==下一步  “Base64编码x.509 (.cer)(s)”选择这一项下一步完成就OK了。

     然后把你的证书文件复制到一个位置方便使用。文件名假设为tingting.cer(cer表示证书文件);

  下面获取WSDL文件(C#):

 

代码

 

 Application.StartupPath + "tingting.cer/"  这里就是我们刚才导出的证书文件的地址,当然我们在实际应用中要写成自己的才行;

request.UserAgent = "Client Cert Sample"User-AgentHTTP标头的值这个可以参考这里  http://support.microsoft.com/kb/895971

下面是详细的代码:

 

代码

 

得到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,单击"确定"看看发生了什么?是的,输出窗口会显示生成了一个类及其存放的位置,看看是不是你选定的文件夹,找到这个路径看看是不是有一个类,你会发现这个类跟上面使用命令行生成的类一模一样,个人觉得这样操作起来更简单一点。

 

 上面是来自http://blog.sina.com.cn/s/blog_48964b120100fz14.html 在这里谢谢了

生成的类文件里会包括 方法使用和怎么样和服务器沟通,我们只要调用 方法就要可以了,

类文件如下

 

 

代码

 

 

 

有了这个类,最后一步就是实现调取数据了,

 

 

 

代码

 

到这里我们已经和服务器沟通上了。好,到此,获取数据ing……


你可能感兴趣的:(C#,webservice)