代码改变世界

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

2010-03-16 16:53  calm_水手  阅读(6565)  评论(3编辑  收藏  举报

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

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

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

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

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

 

代码
 1           //请求的地址
 2             HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.cnblogs.com/ ");
 3 
 4             //创建证书文件
 5             X509Certificate objx509 = new X509Certificate(Application.StartupPath + "\\tingting.cer");
 6 
 7             //添加到请求里
 8             request.ClientCertificates.Add(objx509);
 9 
10             //User-AgentHTTP标头的值
11             request.UserAgent = "Client Cert Sample";
12             request.Method = "POST";
13 
14             //读返回的流
15             StreamReader reader = new StreamReader(request.GetResponse().GetResponseStream());
16 
17             //把得到的WSDL文件放到一个richTextBox1
18             this.richTextBox1.Text = reader.ReadToEnd();
19 

 

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

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

下面是详细的代码:

 

代码
  1 当 Web 服务器需要一个使用 HttpWebRequest 和 HttpWebResponse 类时,您可以发送客户端证书。 若要获取用于通过使用 HttpWebRequest 类发送客户端证书的证书,使用下列方法之一: 
  2 方法 1
  3 使用 x509 证书 类来读取从.cer 文件的证书,然后将 ClientCertificates 属性设置。
  4 方法 2
  5 使用 CryptoAPI 调用来从证书存储获得证书,然后将 x509 证书 类设置为接收从证书存储区的证书。 然后,您可以设置 ClientCertificates 属性。 
  6 回到顶端
  7 发送客户端证书的要求
  8 可与 ASP.NET 应用程序时确保完成以下要求: 
  9 LOCAL_MACHINE 注册表配置单元中并不在 CURRENT_USER 注册表配置单元中,必须安装客户端证书。 若要确认客户端证书的安装位置,请按照下列步骤操作: 
 10 单击 开始、 单击 运行,键入 mmc,然后单击 确定。
 11 在 文件 菜单上单击 添加/删除管理单元。
 12 在 添加/删除管理单元 对话框中单击 添加。
 13 在 添加独立管理单元 对话框中单击 证书,然后单击 添加。
 14 在 证书管理单元 对话框中单击 计算机帐户,然后单击 下一步
 15 在 选择计算机 对话框中单击 完成。
 16 在 添加独立管理单元 对话框中单击 关闭,然后单击 确定。
 17 展开 证书 (本地计算机),展开 个人,然后单击 证书。
 18 在右窗格中应列出客户端证书。
 19 您必须授予 ASP.NET 用户客户端证书的私钥的帐户权限。 若要为 ASP.NET 用户授予客户端证书的私钥的帐户权限,使用 WinHttpCertCfg.exe 工具。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 
 20 823193  (http://support.microsoft.com/kb/823193/ ) 如何获得 Windows HTTP 5.1 证书和跟踪工具 
 21 有关如何使用此工具,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站的详细信息:
 22 WinHttpCertCfg.exe,证书配置工具 http://msdn2.microsoft.com/en-us/library/aa384088.aspx (http://msdn2.microsoft.com/en-us/library/aa384088.aspx
 23 回到顶端
 24 使用.cer 文件
 25 方法 1 是易于使用,但方法要求您具有一个.cer 文件。 如果您没有安装的.cer 文件,使用 Microsoft Internet 资源管理器导出.cer 文件。
 26 
 27 下列源代码介绍如何获取证书从一个.cer 文件您可以使用 HttpWebRequest class.
 28 //Uncomment the following code if you need a proxy. The boolean true is used to bypass the local address.
 29 //WebProxy proxyObject = new WebProxy("Your Proxy value",true); 
 30 //GlobalProxySelection.Select = proxyObject;
 31 
 32 // Obtain the certificate. 
 33 try
 34 {
 35     //You must change the path to point to your .cer file location. 
 36     X509Certificate Cert = X509Certificate.CreateFromCertFile("C:\\mycert.cer");
 37     // Handle any certificate errors on the certificate from the server.
 38     ServicePointManager.CertificatePolicy = new CertPolicy();
 39     // You must change the URL to point to your Web server.
 40     HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://YourServer/sample.asp");
 41     Request.ClientCertificates.Add(Cert);
 42     Request.UserAgent = "Client Cert Sample";
 43     Request.Method = "GET";
 44     HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
 45     // Print the repsonse headers.
 46     Console.WriteLine("{0}",Response.Headers);
 47     Console.WriteLine();
 48     // Get the certificate data.
 49     StreamReader sr = new StreamReader(Response.GetResponseStream(), Encoding.Default);
 50     int count;
 51     char [] ReadBuf = new char[1024];
 52     do
 53     {
 54         count = sr.Read(ReadBuf, 01024);
 55         if (0 != count)
 56         {
 57             Console.WriteLine(new string(ReadBuf));
 58         }
 59                         
 60     }while(count > 0);
 61 }
 62 catch(Exception e)
 63 {
 64     Console.WriteLine(e.Message);
 65 }
 66     
 67 
 68 //Implement the ICertificatePolicy interface.
 69 class CertPolicy: ICertificatePolicy
 70 {
 71     public bool CheckValidationResult(ServicePoint srvPoint, 
 72 X509Certificate certificate, WebRequest request, int certificateProblem)
 73     {
 74         // You can do your own certificate checking.
 75         // You can obtain the error values from WinError.h.
 76 
 77         // Return true so that any certificate will work with this sample.
 78         return true;
 79     }
 80 }
 81 
 82 
 83 
 84 使用 CryptoAPI 调用
 85 如果您必须获取该证书从证书存储区,CryptoAPI 函数用于在获取该证书,然后将其存储在 x509 证书 类对象。 X509CertificateCollection 类枚举存储区中的所有证书,然后将其置于 X509CertificateCollection 类对象中。 
 86 
 87 如果想获得特定的证书,必须更改类代码,以使用 CertFindCertificateInStore 函数获取特定的证书。 Wincrypt.h 的文件中声明该函数。 鎴栬 € 咃,您可以枚举 X509CertificateCollection 函数,以查找所需的证书。 
 88 
 89 下面的代码示例使用从 CertEnumCertificatesInStore 函数返回集合中的第一个证书 
 90 using System;
 91 using System.Net;
 92 using System.IO;
 93 using System.Text;
 94 using System.Security.Cryptography;
 95 using System.Security.Cryptography.X509Certificates;
 96 using System.Runtime.InteropServices;
 97 
 98 namespace SelectClientCert
 99 {
100     /// Sample that describes how how to select client cetificate and send it to the server.
101 
102     class MyCerts{
103 
104         private static int CERT_STORE_PROV_SYSTEM = 10;
105         private static int CERT_SYSTEM_STORE_CURRENT_USER = (1 << 16);
106         ///private static int CERT_SYSTEM_STORE_LOCAL_MACHINE = (2 << 16);
107 
108         [DllImport("CRYPT32", EntryPoint="CertOpenStore", CharSet=CharSet.Unicode, SetLastError=true)]
109         public static extern IntPtr CertOpenStore(
110             int storeProvider, int encodingType,
111             int hcryptProv, int flags, string pvPara);
112 
113         [DllImport("CRYPT32", EntryPoint="CertEnumCertificatesInStore", CharSet=CharSet.Unicode, SetLastError=true)]
114         public static extern IntPtr CertEnumCertificatesInStore(
115             IntPtr storeProvider,
116             IntPtr prevCertContext);
117 
118         [DllImport("CRYPT32", EntryPoint="CertCloseStore", CharSet=CharSet.Unicode, SetLastError=true)]
119         public static extern bool CertCloseStore(
120             IntPtr storeProvider,
121             int flags);
122         
123         X509CertificateCollection m_certs;
124 
125         public MyCerts(){
126             m_certs = new X509CertificateCollection();
127         }
128 
129         public int Init()
130         {
131             IntPtr storeHandle;
132             storeHandle = CertOpenStore(CERT_STORE_PROV_SYSTEM, 00, CERT_SYSTEM_STORE_CURRENT_USER, "MY");
133             IntPtr currentCertContext;
134             currentCertContext = CertEnumCertificatesInStore(storeHandle, (IntPtr)0);
135             int i = 0;
136             while (currentCertContext != (IntPtr)0
137             {
138                 m_certs.Insert(i++new X509Certificate(currentCertContext));
139                 currentCertContext = CertEnumCertificatesInStore(storeHandle, currentCertContext);
140             }
141             CertCloseStore(storeHandle, 0);
142 
143             return m_certs.Count;
144         }
145         
146         public X509Certificate this [int index]
147         {
148             get 
149             {
150                 // Check the index limits.
151                 if (index < 0 || index > m_certs.Count)
152                     return null;
153                 else
154                     return m_certs[index];
155             }
156         }
157     };
158     class MyHttpResource
159     {
160         String m_url;
161 
162         public MyHttpResource(string url){
163             m_url = url;
164         }
165 
166         public void GetFile(){
167 
168             HttpWebResponse  result = null;
169 
170             try{
171             
172                 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(m_url);
173                 req.Credentials  = CredentialCache.DefaultCredentials;
174 
175                 ///Method1
176                 //req.ClientCertificates.Add(X509Certificate.CreateFromCertFile("D:\\Temp\\cert\\c1.cer"));
177         
178                 ///Method2
179                 ///Uses interop services
180                 MyCerts mycert = new MyCerts();
181                 if(mycert.Init() > 0)
182                     req.ClientCertificates.Add(mycert[0]);
183 
184                 result = (HttpWebResponse)req.GetResponse();
185                 
186                 Stream ReceiveStream = result.GetResponseStream();
187                 Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
188 
189                 StreamReader sr = new StreamReader( ReceiveStream, encode );
190                 Console.WriteLine("\r\nResponse stream received");
191 
192                 Char[] read = new Char[256];
193                 int count = sr.Read( read, 0256 );
194 
195                 Console.WriteLine("HTTP Response...\r\n");
196                 while (count > 0
197                 {
198                     String str = new String(read, 0, count);
199                     Console.Write(str);
200                     count = sr.Read(read, 0256);
201                 }
202 
203             } 
204             catch(WebException e) 
205             {
206             
207                 Console.WriteLine("\r\nError:");
208                 #if (DEBUG)
209                     Console.WriteLine(e.ToString());
210                 #else        
211                     Console.WriteLine(e.Message);                 
212                 #endif
213 
214             } 
215             finally 
216             {
217                 if ( result != null ) {
218                     result.Close();
219                 }
220             }
221                 
222         }
223     
224     }
225 
226     class CertSample
227     {
228         static void Main(string[] args)
229         {
230             try
231             {
232                 if (args.Length < 1)
233                 {
234                     Console.WriteLine("No url is entered to download, returning.\n");
235                     Console.WriteLine("Usage: CertSample <urltoget>\n");
236                     Console.WriteLine("  e.g: CertSample https://servername \n"); 
237 
238                     return;
239                 }
240 
241                 MyHttpResource hr = new MyHttpResource(args[0]);
242                 hr.GetFile();
243             }
244             catch(Exception e)
245             {
246                 Console.WriteLine(e.ToString());
247             }
248             return;
249         }
250     }
251 }
252 
253 
254 
255 参考有关详细信息请访问下面的 Microsoft 开发网络 (MSDN) 网站: x509 证书类http://msdn2.microsoft.com/en-us/...有关详细信息请访问下面的 Microsoft 开发网络 (MSDN) 
256 
257 x509 证书类
258 http://msdn2.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate(vs.71).aspx) 
259 
260 

 

得到WSDL的XML文档如下:

 

代码
  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <wsdl:definitions targetNamespace="https://www.cnblogs.com/ " xmlns:tns="https://api.nciic.org.cn/nciicGetCondition" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://https//www.cnblogs.com/ 2003/05/soap-envelope" xmlns:xsd="http://https//www.cnblogs.com/ 2001/XMLSchema" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenc12="http://https//www.cnblogs.com/ 2003/05/soap-encoding" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  3   <wsdl:types>
  4 <xsd:schema xmlns:xsd="http://home.cnblogs.com/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="https://api.nciic.org.cn/nciicGetCondition">
  5 <xsd:element name="nciicDiscern">
  6 <xsd:complexType>
  7 <xsd:sequence>
  8 <xsd:element maxOccurs="1" minOccurs="1" name="inLicense" nillable="true" type="xsd:string"/>
  9 <xsd:element maxOccurs="1" minOccurs="1" name="inConditions" nillable="true" type="xsd:string"/>
 10 </xsd:sequence>
 11 </xsd:complexType>
 12 </xsd:element>
 13 <xsd:element name="nciicDiscernResponse">
 14 <xsd:complexType>
 15 <xsd:sequence>
 16 <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
 17 </xsd:sequence>
 18 </xsd:complexType>
 19 </xsd:element>
 20 <xsd:element name="nciicCheckChina">
 21 <xsd:complexType>
 22 <xsd:sequence>
 23 <xsd:element maxOccurs="1" minOccurs="1" name="inLicense" nillable="true" type="xsd:string"/>
 24 <xsd:element maxOccurs="1" minOccurs="1" name="inConditions" nillable="true" type="xsd:string"/>
 25 </xsd:sequence>
 26 </xsd:complexType>
 27 </xsd:element>
 28 <xsd:element name="nciicCheckChinaResponse">
 29 <xsd:complexType>
 30 <xsd:sequence>
 31 <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
 32 </xsd:sequence>
 33 </xsd:complexType>
 34 </xsd:element>
 35 <xsd:element name="nciicGetCondition">
 36 <xsd:complexType>
 37 <xsd:sequence>
 38 <xsd:element maxOccurs="1" minOccurs="1" name="inLicense" nillable="true" type="xsd:string"/>
 39 </xsd:sequence>
 40 </xsd:complexType>
 41 </xsd:element>
 42 <xsd:element name="nciicGetConditionResponse">
 43 <xsd:complexType>
 44 <xsd:sequence>
 45 <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
 46 </xsd:sequence>
 47 </xsd:complexType>
 48 </xsd:element>
 49 <xsd:element name="nciicExactSearch">
 50 <xsd:complexType>
 51 <xsd:sequence>
 52 <xsd:element maxOccurs="1" minOccurs="1" name="inLicense" nillable="true" type="xsd:string"/>
 53 <xsd:element maxOccurs="1" minOccurs="1" name="inConditions" nillable="true" type="xsd:string"/>
 54 </xsd:sequence>
 55 </xsd:complexType>
 56 </xsd:element>
 57 <xsd:element name="nciicExactSearchResponse">
 58 <xsd:complexType>
 59 <xsd:sequence>
 60 <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
 61 </xsd:sequence>
 62 </xsd:complexType>
 63 </xsd:element>
 64 <xsd:element name="nciicCourt">
 65 <xsd:complexType>
 66 <xsd:sequence>
 67 <xsd:element maxOccurs="1" minOccurs="1" name="inLicense" nillable="true" type="xsd:string"/>
 68 <xsd:element maxOccurs="1" minOccurs="1" name="inConditions" nillable="true" type="xsd:string"/>
 69 </xsd:sequence>
 70 </xsd:complexType>
 71 </xsd:element>
 72 <xsd:element name="nciicCourtResponse">
 73 <xsd:complexType>
 74 <xsd:sequence>
 75 <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
 76 </xsd:sequence>
 77 </xsd:complexType>
 78 </xsd:element>
 79 <xsd:element name="nciicBirthplaceCompare">
 80 <xsd:complexType>
 81 <xsd:sequence>
 82 <xsd:element maxOccurs="1" minOccurs="1" name="inLicense" nillable="true" type="xsd:string"/>
 83 <xsd:element maxOccurs="1" minOccurs="1" name="inConditions" nillable="true" type="xsd:string"/>
 84 </xsd:sequence>
 85 </xsd:complexType>
 86 </xsd:element>
 87 <xsd:element name="nciicBirthplaceCompareResponse">
 88 <xsd:complexType>
 89 <xsd:sequence>
 90 <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
 91 </xsd:sequence>
 92 </xsd:complexType>
 93 </xsd:element>
 94 <xsd:element name="nciicAddrExactSearch">
 95 <xsd:complexType>
 96 <xsd:sequence>
 97 <xsd:element maxOccurs="1" minOccurs="1" name="inLicense" nillable="true" type="xsd:string"/>
 98 <xsd:element maxOccurs="1" minOccurs="1" name="inConditions" nillable="true" type="xsd:string"/>
 99 </xsd:sequence>
100 </xsd:complexType>
101 </xsd:element>
102 <xsd:element name="nciicAddrExactSearchResponse">
103 <xsd:complexType>
104 <xsd:sequence>
105 <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
106 </xsd:sequence>
107 </xsd:complexType>
108 </xsd:element>
109 <xsd:element name="nciicCheck">
110 <xsd:complexType>
111 <xsd:sequence>
112 <xsd:element maxOccurs="1" minOccurs="1" name="inLicense" nillable="true" type="xsd:string"/>
113 <xsd:element maxOccurs="1" minOccurs="1" name="inConditions" nillable="true" type="xsd:string"/>
114 </xsd:sequence>
115 </xsd:complexType>
116 </xsd:element>
117 <xsd:element name="nciicCheckResponse">
118 <xsd:complexType>
119 <xsd:sequence>
120 <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
121 </xsd:sequence>
122 </xsd:complexType>
123 </xsd:element>
124 <xsd:element name="nciicCompare">
125 <xsd:complexType>
126 <xsd:sequence>
127 <xsd:element maxOccurs="1" minOccurs="1" name="inLicense" nillable="true" type="xsd:string"/>
128 <xsd:element maxOccurs="1" minOccurs="1" name="inConditions" nillable="true" type="xsd:string"/>
129 </xsd:sequence>
130 </xsd:complexType>
131 </xsd:element>
132 <xsd:element name="nciicCompareResponse">
133 <xsd:complexType>
134 <xsd:sequence>
135 <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
136 </xsd:sequence>
137 </xsd:complexType>
138 </xsd:element>
139 <xsd:element name="nciicCombineSearch">
140 <xsd:complexType>
141 <xsd:sequence>
142 <xsd:element maxOccurs="1" minOccurs="1" name="inLicense" nillable="true" type="xsd:string"/>
143 <xsd:element maxOccurs="1" minOccurs="1" name="inConditions" nillable="true" type="xsd:string"/>
144 </xsd:sequence>
145 </xsd:complexType>
146 </xsd:element>
147 <xsd:element name="nciicCombineSearchResponse">
148 <xsd:complexType>
149 <xsd:sequence>
150 <xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string"/>
151 </xsd:sequence>
152 </xsd:complexType>
153 </xsd:element>
154 </xsd:schema>
155   </wsdl:types>
156   <wsdl:message name="nciicCombineSearchResponse">
157     <wsdl:part name="parameters" element="tns:nciicCombineSearchResponse">
158     </wsdl:part>
159   </wsdl:message>
160   <wsdl:message name="nciicCheckChinaRequest">
161     <wsdl:part name="parameters" element="tns:nciicCheckChina">
162     </wsdl:part>
163   </wsdl:message>
164   <wsdl:message name="nciicBirthplaceCompareResponse">
165     <wsdl:part name="parameters" element="tns:nciicBirthplaceCompareResponse">
166     </wsdl:part>
167   </wsdl:message>
168   <wsdl:message name="nciicAddrExactSearchRequest">
169     <wsdl:part name="parameters" element="tns:nciicAddrExactSearch">
170     </wsdl:part>
171   </wsdl:message>
172   <wsdl:message name="nciicCheckRequest">
173     <wsdl:part name="parameters" element="tns:nciicCheck">
174     </wsdl:part>
175   </wsdl:message>
176   <wsdl:message name="nciicExactSearchResponse">
177     <wsdl:part name="parameters" element="tns:nciicExactSearchResponse">
178     </wsdl:part>
179   </wsdl:message>
180   <wsdl:message name="nciicCompareResponse">
181     <wsdl:part name="parameters" element="tns:nciicCompareResponse">
182     </wsdl:part>
183   </wsdl:message>
184   <wsdl:message name="nciicCheckResponse">
185     <wsdl:part name="parameters" element="tns:nciicCheckResponse">
186     </wsdl:part>
187   </wsdl:message>
188   <wsdl:message name="nciicCourtRequest">
189     <wsdl:part name="parameters" element="tns:nciicCourt">
190     </wsdl:part>
191   </wsdl:message>
192   <wsdl:message name="nciicExactSearchRequest">
193     <wsdl:part name="parameters" element="tns:nciicExactSearch">
194     </wsdl:part>
195   </wsdl:message>
196   <wsdl:message name="nciicBirthplaceCompareRequest">
197     <wsdl:part name="parameters" element="tns:nciicBirthplaceCompare">
198     </wsdl:part>
199   </wsdl:message>
200   <wsdl:message name="nciicAddrExactSearchResponse">
201     <wsdl:part name="parameters" element="tns:nciicAddrExactSearchResponse">
202     </wsdl:part>
203   </wsdl:message>
204   <wsdl:message name="nciicCombineSearchRequest">
205     <wsdl:part name="parameters" element="tns:nciicCombineSearch">
206     </wsdl:part>
207   </wsdl:message>
208   <wsdl:message name="nciicDiscernRequest">
209     <wsdl:part name="parameters" element="tns:nciicDiscern">
210     </wsdl:part>
211   </wsdl:message>
212   <wsdl:message name="nciicCourtResponse">
213     <wsdl:part name="parameters" element="tns:nciicCourtResponse">
214     </wsdl:part>
215   </wsdl:message>
216   <wsdl:message name="nciicCompareRequest">
217     <wsdl:part name="parameters" element="tns:nciicCompare">
218     </wsdl:part>
219   </wsdl:message>
220   <wsdl:message name="nciicDiscernResponse">
221     <wsdl:part name="parameters" element="tns:nciicDiscernResponse">
222     </wsdl:part>
223   </wsdl:message>
224   <wsdl:message name="nciicGetConditionRequest">
225     <wsdl:part name="parameters" element="tns:nciicGetCondition">
226     </wsdl:part>
227   </wsdl:message>
228   <wsdl:message name="nciicGetConditionResponse">
229     <wsdl:part name="parameters" element="tns:nciicGetConditionResponse">
230     </wsdl:part>
231   </wsdl:message>
232   <wsdl:message name="nciicCheckChinaResponse">
233     <wsdl:part name="parameters" element="tns:nciicCheckChinaResponse">
234     </wsdl:part>
235   </wsdl:message>
236   <wsdl:portType name="nciicGetConditionPortType">
237     <wsdl:operation name="nciicDiscern">
238       <wsdl:input name="nciicDiscernRequest" message="tns:nciicDiscernRequest">
239     </wsdl:input>
240       <wsdl:output name="nciicDiscernResponse" message="tns:nciicDiscernResponse">
241     </wsdl:output>
242     </wsdl:operation>
243     <wsdl:operation name="nciicCheckChina">
244       <wsdl:input name="nciicCheckChinaRequest" message="tns:nciicCheckChinaRequest">
245     </wsdl:input>
246       <wsdl:output name="nciicCheckChinaResponse" message="tns:nciicCheckChinaResponse">
247     </wsdl:output>
248     </wsdl:operation>
249     <wsdl:operation name="nciicGetCondition">
250       <wsdl:input name="nciicGetConditionRequest" message="tns:nciicGetConditionRequest">
251     </wsdl:input>
252       <wsdl:output name="nciicGetConditionResponse" message="tns:nciicGetConditionResponse">
253     </wsdl:output>
254     </wsdl:operation>
255     <wsdl:operation name="nciicExactSearch">
256       <wsdl:input name="nciicExactSearchRequest" message="tns:nciicExactSearchRequest">
257     </wsdl:input>
258       <wsdl:output name="nciicExactSearchResponse" message="tns:nciicExactSearchResponse">
259     </wsdl:output>
260     </wsdl:operation>
261     <wsdl:operation name="nciicCourt">
262       <wsdl:input name="nciicCourtRequest" message="tns:nciicCourtRequest">
263     </wsdl:input>
264       <wsdl:output name="nciicCourtResponse" message="tns:nciicCourtResponse">
265     </wsdl:output>
266     </wsdl:operation>
267     <wsdl:operation name="nciicBirthplaceCompare">
268       <wsdl:input name="nciicBirthplaceCompareRequest" message="tns:nciicBirthplaceCompareRequest">
269     </wsdl:input>
270       <wsdl:output name="nciicBirthplaceCompareResponse" message="tns:nciicBirthplaceCompareResponse">
271     </wsdl:output>
272     </wsdl:operation>
273     <wsdl:operation name="nciicAddrExactSearch">
274       <wsdl:input name="nciicAddrExactSearchRequest" message="tns:nciicAddrExactSearchRequest">
275     </wsdl:input>
276       <wsdl:output name="nciicAddrExactSearchResponse" message="tns:nciicAddrExactSearchResponse">
277     </wsdl:output>
278     </wsdl:operation>
279     <wsdl:operation name="nciicCheck">
280       <wsdl:input name="nciicCheckRequest" message="tns:nciicCheckRequest">
281     </wsdl:input>
282       <wsdl:output name="nciicCheckResponse" message="tns:nciicCheckResponse">
283     </wsdl:output>
284     </wsdl:operation>
285     <wsdl:operation name="nciicCompare">
286       <wsdl:input name="nciicCompareRequest" message="tns:nciicCompareRequest">
287     </wsdl:input>
288       <wsdl:output name="nciicCompareResponse" message="tns:nciicCompareResponse">
289     </wsdl:output>
290     </wsdl:operation>
291     <wsdl:operation name="nciicCombineSearch">
292       <wsdl:input name="nciicCombineSearchRequest" message="tns:nciicCombineSearchRequest">
293     </wsdl:input>
294       <wsdl:output name="nciicCombineSearchResponse" message="tns:nciicCombineSearchResponse">
295     </wsdl:output>
296     </wsdl:operation>
297   </wsdl:portType>
298   <wsdl:binding name="nciicGetConditionHttpBinding" type="tns:nciicGetConditionPortType">
299     <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
300     <wsdl:operation name="nciicDiscern">
301       <wsdlsoap:operation soapAction=""/>
302       <wsdl:input name="nciicDiscernRequest">
303         <wsdlsoap:body use="literal"/>
304       </wsdl:input>
305       <wsdl:output name="nciicDiscernResponse">
306         <wsdlsoap:body use="literal"/>
307       </wsdl:output>
308     </wsdl:operation>
309     <wsdl:operation name="nciicCheckChina">
310       <wsdlsoap:operation soapAction=""/>
311       <wsdl:input name="nciicCheckChinaRequest">
312         <wsdlsoap:body use="literal"/>
313       </wsdl:input>
314       <wsdl:output name="nciicCheckChinaResponse">
315         <wsdlsoap:body use="literal"/>
316       </wsdl:output>
317     </wsdl:operation>
318     <wsdl:operation name="nciicGetCondition">
319       <wsdlsoap:operation soapAction=""/>
320       <wsdl:input name="nciicGetConditionRequest">
321         <wsdlsoap:body use="literal"/>
322       </wsdl:input>
323       <wsdl:output name="nciicGetConditionResponse">
324         <wsdlsoap:body use="literal"/>
325       </wsdl:output>
326     </wsdl:operation>
327     <wsdl:operation name="nciicExactSearch">
328       <wsdlsoap:operation soapAction=""/>
329       <wsdl:input name="nciicExactSearchRequest">
330         <wsdlsoap:body use="literal"/>
331       </wsdl:input>
332       <wsdl:output name="nciicExactSearchResponse">
333         <wsdlsoap:body use="literal"/>
334       </wsdl:output>
335     </wsdl:operation>
336     <wsdl:operation name="nciicCourt">
337       <wsdlsoap:operation soapAction=""/>
338       <wsdl:input name="nciicCourtRequest">
339         <wsdlsoap:body use="literal"/>
340       </wsdl:input>
341       <wsdl:output name="nciicCourtResponse">
342         <wsdlsoap:body use="literal"/>
343       </wsdl:output>
344     </wsdl:operation>
345     <wsdl:operation name="nciicBirthplaceCompare">
346       <wsdlsoap:operation soapAction=""/>
347       <wsdl:input name="nciicBirthplaceCompareRequest">
348         <wsdlsoap:body use="literal"/>
349       </wsdl:input>
350       <wsdl:output name="nciicBirthplaceCompareResponse">
351         <wsdlsoap:body use="literal"/>
352       </wsdl:output>
353     </wsdl:operation>
354     <wsdl:operation name="nciicAddrExactSearch">
355       <wsdlsoap:operation soapAction=""/>
356       <wsdl:input name="nciicAddrExactSearchRequest">
357         <wsdlsoap:body use="literal"/>
358       </wsdl:input>
359       <wsdl:output name="nciicAddrExactSearchResponse">
360         <wsdlsoap:body use="literal"/>
361       </wsdl:output>
362     </wsdl:operation>
363     <wsdl:operation name="nciicCheck">
364       <wsdlsoap:operation soapAction=""/>
365       <wsdl:input name="nciicCheckRequest">
366         <wsdlsoap:body use="literal"/>
367       </wsdl:input>
368       <wsdl:output name="nciicCheckResponse">
369         <wsdlsoap:body use="literal"/>
370       </wsdl:output>
371     </wsdl:operation>
372     <wsdl:operation name="nciicCompare">
373       <wsdlsoap:operation soapAction=""/>
374       <wsdl:input name="nciicCompareRequest">
375         <wsdlsoap:body use="literal"/>
376       </wsdl:input>
377       <wsdl:output name="nciicCompareResponse">
378         <wsdlsoap:body use="literal"/>
379       </wsdl:output>
380     </wsdl:operation>
381     <wsdl:operation name="nciicCombineSearch">
382       <wsdlsoap:operation soapAction=""/>
383       <wsdl:input name="nciicCombineSearchRequest">
384         <wsdlsoap:body use="literal"/>
385       </wsdl:input>
386       <wsdl:output name="nciicCombineSearchResponse">
387         <wsdlsoap:body use="literal"/>
388       </wsdl:output>
389     </wsdl:operation>
390   </wsdl:binding>
391   <wsdl:service name="nciicGetCondition">
392     <wsdl:port name="nciicGetConditionHttpPort" binding="tns:nciicGetConditionHttpBinding">
393       <wsdlsoap:address location="http://api.nciic.org.cn/nciic_ws/services/nciicGetCondition"/>
394     </wsdl:port>
395   </wsdl:service>
396 </wsdl:definitions>
397 
398 

 

 

 我们得把它转化成一个类文件才行,

方法很简单,这是在我知道 了之后才这样讲的,呵呵

利用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 在这里谢谢了

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

类文件如下

 

 

代码
  1 //------------------------------------------------------------------------------
  2 // <auto-generated>
  3 //     此代码由工具生成。
  4 //     运行库版本:2.0.50727.1873
  5 //
  6 //     对此文件的更改可能会导致不正确的行为,并且如果
  7 //     重新生成代码,这些更改将会丢失。
  8 // </auto-generated>
  9 //------------------------------------------------------------------------------
 10 
 11 // 
 12 // 此源代码由 wsdl 自动生成, Version=2.0.50727.1432。
 13 // 
 14 namespace WSDLServices
 15 {
 16     using System.Diagnostics;
 17     using System.Web.Services;
 18     using System.ComponentModel;
 19     using System.Web.Services.Protocols;
 20     using System;
 21     using System.Xml.Serialization;
 22     
 23     
 24     /// <remarks/>
 25     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
 26     [System.Diagnostics.DebuggerStepThroughAttribute()]
 27     [System.ComponentModel.DesignerCategoryAttribute("code")]
 28     [System.Web.Services.WebServiceBindingAttribute(Name="nciicGetConditionHttpBinding", Namespace="https://http://www.cnblogs.com/ /nciicGetCondition")]
 29     public partial class nciicGetCondition : System.Web.Services.Protocols.SoapHttpClientProtocol {
 30         
 31         private System.Threading.SendOrPostCallback nciicDiscernOperationCompleted;
 32         
 33         private System.Threading.SendOrPostCallback nciicCheckChinaOperationCompleted;
 34         
 35         private System.Threading.SendOrPostCallback CallnciicGetConditionOperationCompleted;
 36         
 37         private System.Threading.SendOrPostCallback nciicExactSearchOperationCompleted;
 38         
 39         private System.Threading.SendOrPostCallback nciicCourtOperationCompleted;
 40         
 41         private System.Threading.SendOrPostCallback nciicBirthplaceCompareOperationCompleted;
 42         
 43         private System.Threading.SendOrPostCallback nciicAddrExactSearchOperationCompleted;
 44         
 45         private System.Threading.SendOrPostCallback nciicCheckOperationCompleted;
 46         
 47         private System.Threading.SendOrPostCallback nciicCompareOperationCompleted;
 48         
 49         private System.Threading.SendOrPostCallback nciicCombineSearchOperationCompleted;
 50         
 51         /// <remarks/>
 52         public nciicGetCondition() {
 53             this.Url = "http://http://www.cnblogs.com/ /nciic_ws/services/nciicGetCondition";
 54         }
 55         
 56         /// <remarks/>
 57         public event nciicDiscernCompletedEventHandler nciicDiscernCompleted;
 58         
 59         /// <remarks/>
 60         public event nciicCheckChinaCompletedEventHandler nciicCheckChinaCompleted;
 61         
 62         /// <remarks/>
 63         public event CallnciicGetConditionCompletedEventHandler CallnciicGetConditionCompleted;
 64         
 65         /// <remarks/>
 66         public event nciicExactSearchCompletedEventHandler nciicExactSearchCompleted;
 67         
 68         /// <remarks/>
 69         public event nciicCourtCompletedEventHandler nciicCourtCompleted;
 70         
 71         /// <remarks/>
 72         public event nciicBirthplaceCompareCompletedEventHandler nciicBirthplaceCompareCompleted;
 73         
 74         /// <remarks/>
 75         public event nciicAddrExactSearchCompletedEventHandler nciicAddrExactSearchCompleted;
 76         
 77         /// <remarks/>
 78         public event nciicCheckCompletedEventHandler nciicCheckCompleted;
 79         
 80         /// <remarks/>
 81         public event nciicCompareCompletedEventHandler nciicCompareCompleted;
 82         
 83         /// <remarks/>
 84         public event nciicCombineSearchCompletedEventHandler nciicCombineSearchCompleted;
 85         
 86         /// <remarks/>
 87         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", ResponseNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
 88         [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
 89         public string nciicDiscern([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inLicense, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inConditions) {
 90             object[] results = this.Invoke("nciicDiscern"new object[] {
 91                         inLicense,
 92                         inConditions});
 93             return ((string)(results[0]));
 94         }
 95         
 96         /// <remarks/>
 97         public System.IAsyncResult BeginnciicDiscern(string inLicense, string inConditions, System.AsyncCallback callback, object asyncState) {
 98             return this.BeginInvoke("nciicDiscern"new object[] {
 99                         inLicense,
100                         inConditions}, callback, asyncState);
101         }
102         
103         /// <remarks/>
104         public string EndnciicDiscern(System.IAsyncResult asyncResult) {
105             object[] results = this.EndInvoke(asyncResult);
106             return ((string)(results[0]));
107         }
108         
109         /// <remarks/>
110         public void nciicDiscernAsync(string inLicense, string inConditions) {
111             this.nciicDiscernAsync(inLicense, inConditions, null);
112         }
113         
114         /// <remarks/>
115         public void nciicDiscernAsync(string inLicense, string inConditions, object userState) {
116             if ((this.nciicDiscernOperationCompleted == null)) {
117                 this.nciicDiscernOperationCompleted = new System.Threading.SendOrPostCallback(this.OnnciicDiscernOperationCompleted);
118             }
119             this.InvokeAsync("nciicDiscern"new object[] {
120                         inLicense,
121                         inConditions}, this.nciicDiscernOperationCompleted, userState);
122         }
123         
124         private void OnnciicDiscernOperationCompleted(object arg) {
125             if ((this.nciicDiscernCompleted != null)) {
126                 System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
127                 this.nciicDiscernCompleted(thisnew nciicDiscernCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
128             }
129         }
130         
131         /// <remarks/>
132         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", ResponseNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
133         [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
134         public string nciicCheckChina([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inLicense, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inConditions) {
135             object[] results = this.Invoke("nciicCheckChina"new object[] {
136                         inLicense,
137                         inConditions});
138             return ((string)(results[0]));
139         }
140         
141         /// <remarks/>
142         public System.IAsyncResult BeginnciicCheckChina(string inLicense, string inConditions, System.AsyncCallback callback, object asyncState) {
143             return this.BeginInvoke("nciicCheckChina"new object[] {
144                         inLicense,
145                         inConditions}, callback, asyncState);
146         }
147         
148         /// <remarks/>
149         public string EndnciicCheckChina(System.IAsyncResult asyncResult) {
150             object[] results = this.EndInvoke(asyncResult);
151             return ((string)(results[0]));
152         }
153         
154         /// <remarks/>
155         public void nciicCheckChinaAsync(string inLicense, string inConditions) {
156             this.nciicCheckChinaAsync(inLicense, inConditions, null);
157         }
158         
159         /// <remarks/>
160         public void nciicCheckChinaAsync(string inLicense, string inConditions, object userState) {
161             if ((this.nciicCheckChinaOperationCompleted == null)) {
162                 this.nciicCheckChinaOperationCompleted = new System.Threading.SendOrPostCallback(this.OnnciicCheckChinaOperationCompleted);
163             }
164             this.InvokeAsync("nciicCheckChina"new object[] {
165                         inLicense,
166                         inConditions}, this.nciicCheckChinaOperationCompleted, userState);
167         }
168         
169         private void OnnciicCheckChinaOperationCompleted(object arg) {
170             if ((this.nciicCheckChinaCompleted != null)) {
171                 System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
172                 this.nciicCheckChinaCompleted(thisnew nciicCheckChinaCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
173             }
174         }
175         
176         /// <remarks/>
177         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestElementName="nciicGetCondition", RequestNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", ResponseElementName="nciicGetConditionResponse", ResponseNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
178         [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
179         public string CallnciicGetCondition([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inLicense) {
180             object[] results = this.Invoke("CallnciicGetCondition"new object[] {
181                         inLicense});
182             return ((string)(results[0]));
183         }
184         
185         /// <remarks/>
186         public System.IAsyncResult BeginCallnciicGetCondition(string inLicense, System.AsyncCallback callback, object asyncState) {
187             return this.BeginInvoke("CallnciicGetCondition"new object[] {
188                         inLicense}, callback, asyncState);
189         }
190         
191         /// <remarks/>
192         public string EndCallnciicGetCondition(System.IAsyncResult asyncResult) {
193             object[] results = this.EndInvoke(asyncResult);
194             return ((string)(results[0]));
195         }
196         
197         /// <remarks/>
198         public void CallnciicGetConditionAsync(string inLicense) {
199             this.CallnciicGetConditionAsync(inLicense, null);
200         }
201         
202         /// <remarks/>
203         public void CallnciicGetConditionAsync(string inLicense, object userState) {
204             if ((this.CallnciicGetConditionOperationCompleted == null)) {
205                 this.CallnciicGetConditionOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCallnciicGetConditionOperationCompleted);
206             }
207             this.InvokeAsync("CallnciicGetCondition"new object[] {
208                         inLicense}, this.CallnciicGetConditionOperationCompleted, userState);
209         }
210         
211         private void OnCallnciicGetConditionOperationCompleted(object arg) {
212             if ((this.CallnciicGetConditionCompleted != null)) {
213                 System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
214                 this.CallnciicGetConditionCompleted(thisnew CallnciicGetConditionCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
215             }
216         }
217         
218         /// <remarks/>
219         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", ResponseNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
220         [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
221         public string nciicExactSearch([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inLicense, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inConditions) {
222             object[] results = this.Invoke("nciicExactSearch"new object[] {
223                         inLicense,
224                         inConditions});
225             return ((string)(results[0]));
226         }
227         
228         /// <remarks/>
229         public System.IAsyncResult BeginnciicExactSearch(string inLicense, string inConditions, System.AsyncCallback callback, object asyncState) {
230             return this.BeginInvoke("nciicExactSearch"new object[] {
231                         inLicense,
232                         inConditions}, callback, asyncState);
233         }
234         
235         /// <remarks/>
236         public string EndnciicExactSearch(System.IAsyncResult asyncResult) {
237             object[] results = this.EndInvoke(asyncResult);
238             return ((string)(results[0]));
239         }
240         
241         /// <remarks/>
242         public void nciicExactSearchAsync(string inLicense, string inConditions) {
243             this.nciicExactSearchAsync(inLicense, inConditions, null);
244         }
245         
246         /// <remarks/>
247         public void nciicExactSearchAsync(string inLicense, string inConditions, object userState) {
248             if ((this.nciicExactSearchOperationCompleted == null)) {
249                 this.nciicExactSearchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnnciicExactSearchOperationCompleted);
250             }
251             this.InvokeAsync("nciicExactSearch"new object[] {
252                         inLicense,
253                         inConditions}, this.nciicExactSearchOperationCompleted, userState);
254         }
255         
256         private void OnnciicExactSearchOperationCompleted(object arg) {
257             if ((this.nciicExactSearchCompleted != null)) {
258                 System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
259                 this.nciicExactSearchCompleted(thisnew nciicExactSearchCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
260             }
261         }
262         
263         /// <remarks/>
264         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", ResponseNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
265         [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
266         public string nciicCourt([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inLicense, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inConditions) {
267             object[] results = this.Invoke("nciicCourt"new object[] {
268                         inLicense,
269                         inConditions});
270             return ((string)(results[0]));
271         }
272         
273         /// <remarks/>
274         public System.IAsyncResult BeginnciicCourt(string inLicense, string inConditions, System.AsyncCallback callback, object asyncState) {
275             return this.BeginInvoke("nciicCourt"new object[] {
276                         inLicense,
277                         inConditions}, callback, asyncState);
278         }
279         
280         /// <remarks/>
281         public string EndnciicCourt(System.IAsyncResult asyncResult) {
282             object[] results = this.EndInvoke(asyncResult);
283             return ((string)(results[0]));
284         }
285         
286         /// <remarks/>
287         public void nciicCourtAsync(string inLicense, string inConditions) {
288             this.nciicCourtAsync(inLicense, inConditions, null);
289         }
290         
291         /// <remarks/>
292         public void nciicCourtAsync(string inLicense, string inConditions, object userState) {
293             if ((this.nciicCourtOperationCompleted == null)) {
294                 this.nciicCourtOperationCompleted = new System.Threading.SendOrPostCallback(this.OnnciicCourtOperationCompleted);
295             }
296             this.InvokeAsync("nciicCourt"new object[] {
297                         inLicense,
298                         inConditions}, this.nciicCourtOperationCompleted, userState);
299         }
300         
301         private void OnnciicCourtOperationCompleted(object arg) {
302             if ((this.nciicCourtCompleted != null)) {
303                 System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
304                 this.nciicCourtCompleted(thisnew nciicCourtCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
305             }
306         }
307         
308         /// <remarks/>
309         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", ResponseNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
310         [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
311         public string nciicBirthplaceCompare([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inLicense, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inConditions) {
312             object[] results = this.Invoke("nciicBirthplaceCompare"new object[] {
313                         inLicense,
314                         inConditions});
315             return ((string)(results[0]));
316         }
317         
318         /// <remarks/>
319         public System.IAsyncResult BeginnciicBirthplaceCompare(string inLicense, string inConditions, System.AsyncCallback callback, object asyncState) {
320             return this.BeginInvoke("nciicBirthplaceCompare"new object[] {
321                         inLicense,
322                         inConditions}, callback, asyncState);
323         }
324         
325         /// <remarks/>
326         public string EndnciicBirthplaceCompare(System.IAsyncResult asyncResult) {
327             object[] results = this.EndInvoke(asyncResult);
328             return ((string)(results[0]));
329         }
330         
331         /// <remarks/>
332         public void nciicBirthplaceCompareAsync(string inLicense, string inConditions) {
333             this.nciicBirthplaceCompareAsync(inLicense, inConditions, null);
334         }
335         
336         /// <remarks/>
337         public void nciicBirthplaceCompareAsync(string inLicense, string inConditions, object userState) {
338             if ((this.nciicBirthplaceCompareOperationCompleted == null)) {
339                 this.nciicBirthplaceCompareOperationCompleted = new System.Threading.SendOrPostCallback(this.OnnciicBirthplaceCompareOperationCompleted);
340             }
341             this.InvokeAsync("nciicBirthplaceCompare"new object[] {
342                         inLicense,
343                         inConditions}, this.nciicBirthplaceCompareOperationCompleted, userState);
344         }
345         
346         private void OnnciicBirthplaceCompareOperationCompleted(object arg) {
347             if ((this.nciicBirthplaceCompareCompleted != null)) {
348                 System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
349                 this.nciicBirthplaceCompareCompleted(thisnew nciicBirthplaceCompareCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
350             }
351         }
352         
353         /// <remarks/>
354         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", ResponseNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
355         [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
356         public string nciicAddrExactSearch([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inLicense, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inConditions) {
357             object[] results = this.Invoke("nciicAddrExactSearch"new object[] {
358                         inLicense,
359                         inConditions});
360             return ((string)(results[0]));
361         }
362         
363         /// <remarks/>
364         public System.IAsyncResult BeginnciicAddrExactSearch(string inLicense, string inConditions, System.AsyncCallback callback, object asyncState) {
365             return this.BeginInvoke("nciicAddrExactSearch"new object[] {
366                         inLicense,
367                         inConditions}, callback, asyncState);
368         }
369         
370         /// <remarks/>
371         public string EndnciicAddrExactSearch(System.IAsyncResult asyncResult) {
372             object[] results = this.EndInvoke(asyncResult);
373             return ((string)(results[0]));
374         }
375         
376         /// <remarks/>
377         public void nciicAddrExactSearchAsync(string inLicense, string inConditions) {
378             this.nciicAddrExactSearchAsync(inLicense, inConditions, null);
379         }
380         
381         /// <remarks/>
382         public void nciicAddrExactSearchAsync(string inLicense, string inConditions, object userState) {
383             if ((this.nciicAddrExactSearchOperationCompleted == null)) {
384                 this.nciicAddrExactSearchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnnciicAddrExactSearchOperationCompleted);
385             }
386             this.InvokeAsync("nciicAddrExactSearch"new object[] {
387                         inLicense,
388                         inConditions}, this.nciicAddrExactSearchOperationCompleted, userState);
389         }
390         
391         private void OnnciicAddrExactSearchOperationCompleted(object arg) {
392             if ((this.nciicAddrExactSearchCompleted != null)) {
393                 System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
394                 this.nciicAddrExactSearchCompleted(thisnew nciicAddrExactSearchCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
395             }
396         }
397         
398         /// <remarks/>
399         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", ResponseNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped
400             )]
401         [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
402         public string nciicCheck([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inLicense, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inConditions) {
403             object[] results = this.Invoke("nciicCheck"new object[] {
404                         inLicense,
405                         inConditions});
406             return ((string)(results[0]));
407         }
408         
409         /// <remarks/>
410         public System.IAsyncResult BeginnciicCheck(string inLicense, string inConditions, System.AsyncCallback callback, object asyncState) {
411             return this.BeginInvoke("nciicCheck"new object[] {
412                         inLicense,
413                         inConditions}, callback, asyncState);
414         }
415         
416         /// <remarks/>
417         public string EndnciicCheck(System.IAsyncResult asyncResult) {
418             object[] results = this.EndInvoke(asyncResult);
419             return ((string)(results[0]));
420         }
421         
422         /// <remarks/>
423         public void nciicCheckAsync(string inLicense, string inConditions) {
424             this.nciicCheckAsync(inLicense, inConditions, null);
425         }
426         
427         /// <remarks/>
428         public void nciicCheckAsync(string inLicense, string inConditions, object userState) {
429             if ((this.nciicCheckOperationCompleted == null)) {
430                 this.nciicCheckOperationCompleted = new System.Threading.SendOrPostCallback(this.OnnciicCheckOperationCompleted);
431             }
432             this.InvokeAsync("nciicCheck"new object[] {
433                         inLicense,
434                         inConditions}, this.nciicCheckOperationCompleted, userState);
435         }
436         
437         private void OnnciicCheckOperationCompleted(object arg) {
438             if ((this.nciicCheckCompleted != null)) {
439                 System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
440                 this.nciicCheckCompleted(thisnew nciicCheckCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
441             }
442         }
443         
444         /// <remarks/>
445         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", ResponseNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
446         [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
447         public string nciicCompare([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inLicense, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inConditions) {
448             object[] results = this.Invoke("nciicCompare"new object[] {
449                         inLicense,
450                         inConditions});
451             return ((string)(results[0]));
452         }
453         
454         /// <remarks/>
455         public System.IAsyncResult BeginnciicCompare(string inLicense, string inConditions, System.AsyncCallback callback, object asyncState) {
456             return this.BeginInvoke("nciicCompare"new object[] {
457                         inLicense,
458                         inConditions}, callback, asyncState);
459         }
460         
461         /// <remarks/>
462         public string EndnciicCompare(System.IAsyncResult asyncResult) {
463             object[] results = this.EndInvoke(asyncResult);
464             return ((string)(results[0]));
465         }
466         
467         /// <remarks/>
468         public void nciicCompareAsync(string inLicense, string inConditions) {
469             this.nciicCompareAsync(inLicense, inConditions, null);
470         }
471         
472         /// <remarks/>
473         public void nciicCompareAsync(string inLicense, string inConditions, object userState) {
474             if ((this.nciicCompareOperationCompleted == null)) {
475                 this.nciicCompareOperationCompleted = new System.Threading.SendOrPostCallback(this.OnnciicCompareOperationCompleted);
476             }
477             this.InvokeAsync("nciicCompare"new object[] {
478                         inLicense,
479                         inConditions}, this.nciicCompareOperationCompleted, userState);
480         }
481         
482         private void OnnciicCompareOperationCompleted(object arg) {
483             if ((this.nciicCompareCompleted != null)) {
484                 System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
485                 this.nciicCompareCompleted(thisnew nciicCompareCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
486             }
487         }
488         
489         /// <remarks/>
490         [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", RequestNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", ResponseNamespace="https://http://www.cnblogs.com/ /nciicGetCondition", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
491         [return: System.Xml.Serialization.XmlElementAttribute("out", IsNullable=true)]
492         public string nciicCombineSearch([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inLicense, [System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] string inConditions) {
493             object[] results = this.Invoke("nciicCombineSearch"new object[] {
494                         inLicense,
495                         inConditions});
496             return ((string)(results[0]));
497         }
498         
499         /// <remarks/>
500         public System.IAsyncResult BeginnciicCombineSearch(string inLicense, string inConditions, System.AsyncCallback callback, object asyncState) {
501             return this.BeginInvoke("nciicCombineSearch"new object[] {
502                         inLicense,
503                         inConditions}, callback, asyncState);
504         }
505         
506         /// <remarks/>
507         public string EndnciicCombineSearch(System.IAsyncResult asyncResult) {
508             object[] results = this.EndInvoke(asyncResult);
509             return ((string)(results[0]));
510         }
511         
512         /// <remarks/>
513         public void nciicCombineSearchAsync(string inLicense, string inConditions) {
514             this.nciicCombineSearchAsync(inLicense, inConditions, null);
515         }
516         
517         /// <remarks/>
518         public void nciicCombineSearchAsync(string inLicense, string inConditions, object userState) {
519             if ((this.nciicCombineSearchOperationCompleted == null)) {
520                 this.nciicCombineSearchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnnciicCombineSearchOperationCompleted);
521             }
522             this.InvokeAsync("nciicCombineSearch"new object[] {
523                         inLicense,
524                         inConditions}, this.nciicCombineSearchOperationCompleted, userState);
525         }
526         
527         private void OnnciicCombineSearchOperationCompleted(object arg) {
528             if ((this.nciicCombineSearchCompleted != null)) {
529                 System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg));
530                 this.nciicCombineSearchCompleted(thisnew nciicCombineSearchCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
531             }
532         }
533         
534         /// <remarks/>
535         public new void CancelAsync(object userState) {
536             base.CancelAsync(userState);
537         }
538     }
539     
540     /// <remarks/>
541     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
542     public delegate void nciicDiscernCompletedEventHandler(object sender, nciicDiscernCompletedEventArgs e);
543     
544     /// <remarks/>
545     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
546     [System.Diagnostics.DebuggerStepThroughAttribute()]
547     [System.ComponentModel.DesignerCategoryAttribute("code")]
548     public partial class nciicDiscernCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
549         
550         private object[] results;
551         
552         internal nciicDiscernCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
553                 base(exception, cancelled, userState) {
554             this.results = results;
555         }
556         
557         /// <remarks/>
558         public string Result {
559             get {
560                 this.RaiseExceptionIfNecessary();
561                 return ((string)(this.results[0]));
562             }
563         }
564     }
565     
566     /// <remarks/>
567     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
568     public delegate void nciicCheckChinaCompletedEventHandler(object sender, nciicCheckChinaCompletedEventArgs e);
569     
570     /// <remarks/>
571     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
572     [System.Diagnostics.DebuggerStepThroughAttribute()]
573     [System.ComponentModel.DesignerCategoryAttribute("code")]
574     public partial class nciicCheckChinaCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
575         
576         private object[] results;
577         
578         internal nciicCheckChinaCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
579                 base(exception, cancelled, userState) {
580             this.results = results;
581         }
582         
583         /// <remarks/>
584         public string Result {
585             get {
586                 this.RaiseExceptionIfNecessary();
587                 return ((string)(this.results[0]));
588             }
589         }
590     }
591     
592     /// <remarks/>
593     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
594     public delegate void CallnciicGetConditionCompletedEventHandler(object sender, CallnciicGetConditionCompletedEventArgs e);
595     
596     /// <remarks/>
597     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
598     [System.Diagnostics.DebuggerStepThroughAttribute()]
599     [System.ComponentModel.DesignerCategoryAttribute("code")]
600     public partial class CallnciicGetConditionCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
601         
602         private object[] results;
603         
604         internal CallnciicGetConditionCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
605                 base(exception, cancelled, userState) {
606             this.results = results;
607         }
608         
609         /// <remarks/>
610         public string Result {
611             get {
612                 this.RaiseExceptionIfNecessary();
613                 return ((string)(this.results[0]));
614             }
615         }
616     }
617     
618     /// <remarks/>
619     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
620     public delegate void nciicExactSearchCompletedEventHandler(object sender, nciicExactSearchCompletedEventArgs e);
621     
622     /// <remarks/>
623     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
624     [System.Diagnostics.DebuggerStepThroughAttribute()]
625     [System.ComponentModel.DesignerCategoryAttribute("code")]
626     public partial class nciicExactSearchCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
627         
628         private object[] results;
629         
630         internal nciicExactSearchCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
631                 base(exception, cancelled, userState) {
632             this.results = results;
633         }
634         
635         /// <remarks/>
636         public string Result {
637             get {
638                 this.RaiseExceptionIfNecessary();
639                 return ((string)(this.results[0]));
640             }
641         }
642     }
643     
644     /// <remarks/>
645     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
646     public delegate void nciicCourtCompletedEventHandler(object sender, nciicCourtCompletedEventArgs e);
647     
648     /// <remarks/>
649     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
650     [System.Diagnostics.DebuggerStepThroughAttribute()]
651     [System.ComponentModel.DesignerCategoryAttribute("code")]
652     public partial class nciicCourtCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
653         
654         private object[] results;
655         
656         internal nciicCourtCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
657                 base(exception, cancelled, userState) {
658             this.results = results;
659         }
660         
661         /// <remarks/>
662         public string Result {
663             get {
664                 this.RaiseExceptionIfNecessary();
665                 return ((string)(this.results[0]));
666             }
667         }
668     }
669     
670     /// <remarks/>
671     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
672     public delegate void nciicBirthplaceCompareCompletedEventHandler(object sender, nciicBirthplaceCompareCompletedEventArgs e);
673     
674     /// <remarks/>
675     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
676     [System.Diagnostics.DebuggerStepThroughAttribute()]
677     [System.ComponentModel.DesignerCategoryAttribute("code")]
678     public partial class nciicBirthplaceCompareCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
679         
680         private object[] results;
681         
682         internal nciicBirthplaceCompareCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
683                 base(exception, cancelled, userState) {
684             this.results = results;
685         }
686         
687         /// <remarks/>
688         public string Result {
689             get {
690                 this.RaiseExceptionIfNecessary();
691                 return ((string)(this.results[0]));
692             }
693         }
694     }
695     
696     /// <remarks/>
697     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
698     public delegate void nciicAddrExactSearchCompletedEventHandler(object sender, nciicAddrExactSearchCompletedEventArgs e);
699     
700     /// <remarks/>
701     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
702     [System.Diagnostics.DebuggerStepThroughAttribute()]
703     [System.ComponentModel.DesignerCategoryAttribute("code")]
704     public partial class nciicAddrExactSearchCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
705         
706         private object[] results;
707         
708         internal nciicAddrExactSearchCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
709                 base(exception, cancelled, userState) {
710             this.results = results;
711         }
712         
713         /// <remarks/>
714         public string Result {
715             get {
716                 this.RaiseExceptionIfNecessary();
717                 return ((string)(this.results[0]));
718             }
719         }
720     }
721     
722     /// <remarks/>
723     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
724     public delegate void nciicCheckCompletedEventHandler(object sender, nciicCheckCompletedEventArgs e);
725     
726     /// <remarks/>
727     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
728     [System.Diagnostics.DebuggerStepThroughAttribute()]
729     [System.ComponentModel.DesignerCategoryAttribute("code")]
730     public partial class nciicCheckCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
731         
732         private object[] results;
733         
734         internal nciicCheckCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
735                 base(exception, cancelled, userState) {
736             this.results = results;
737         }
738         
739         /// <remarks/>
740         public string Result {
741             get {
742                 this.RaiseExceptionIfNecessary();
743                 return ((string)(this.results[0]));
744             }
745         }
746     }
747     
748     /// <remarks/>
749     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
750     public delegate void nciicCompareCompletedEventHandler(object sender, nciicCompareCompletedEventArgs e);
751     
752     /// <remarks/>
753     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
754     [System.Diagnostics.DebuggerStepThroughAttribute()]
755     [System.ComponentModel.DesignerCategoryAttribute("code")]
756     public partial class nciicCompareCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
757         
758         private object[] results;
759         
760         internal nciicCompareCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
761                 base(exception, cancelled, userState) {
762             this.results = results;
763         }
764         
765         /// <remarks/>
766         public string Result {
767             get {
768                 this.RaiseExceptionIfNecessary();
769                 return ((string)(this.results[0]));
770             }
771         }
772     }
773     
774     /// <remarks/>
775     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
776     public delegate void nciicCombineSearchCompletedEventHandler(object sender, nciicCombineSearchCompletedEventArgs e);
777     
778     /// <remarks/>
779     [System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl""2.0.50727.1432")]
780     [System.Diagnostics.DebuggerStepThroughAttribute()]
781     [System.ComponentModel.DesignerCategoryAttribute("code")]
782     public partial class nciicCombineSearchCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs {
783         
784         private object[] results;
785         
786         internal nciicCombineSearchCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : 
787                 base(exception, cancelled, userState) {
788             this.results = results;
789         }
790         
791         /// <remarks/>
792         public string Result {
793             get {
794                 this.RaiseExceptionIfNecessary();
795                 return ((string)(this.results[0]));
796             }
797         }
798     }
799 }
800 
801 

 

 

 

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

 

 

 

代码
 1 try
 2             {
 3                 //授权文件内容建议以后放在数据库或是文件里而且要加密
 4                 string inliance = @"文件内容";
 5 
 6                 //生成的WSDL类()
 7                 nciicGetCondition objText = new nciicGetCondition();
 8 
 9                 //基础URL建议加密和写在文件中
10                 objText.Url = "https://www.cnblogs.com/ ";
11 
12                 //编码
13                 objText.RequestEncoding =  Encoding.UTF8;
14 
15                 //创建证书文件
16                 X509Certificate objx509 = new X509Certificate(Application.StartupPath + "\\tingting.cer");
17                 
18                 //证书
19                 objText.ClientCertificates.Add(objx509);
20 
21                 //方式可有可无
22                 objText.UserAgent = "Client Cert Sample";
23 
24                 //读XML文件
25                 string inConditions = File.ReadAllText(Application.StartupPath + "\\XMLFile1.xml");
26 
27                 //Text文件
28                 this.richTextBox1.Text = objText.nciicCheck(inliance, inConditions);
29 
30             }
31             catch (Exception ex)
32             {
33                 MessageBox.Show(ex.Message);
34             }
35 

 

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