调用 Https WebService 使用程序自动生成代理类

1 商家提供的WebService接口:  https://ws.nciic.org.cn/nciic_ws/services/NciicServices?wsdlhtml

2 在浏览器里打开这个地址,会显示一个XML,右击另存为1.wsdl文件api

3 使用vs 的 wsdl.exe工具的来生成代理类浏览器

 wsdl.exe的位置  C:\Program Files\\Microsoft SDKs\Windows\v6.0A\bin\wsdl.exe  (视我的状况而定)安全

说明一下:WebService地址 能够是 http或者https的域名,能够是C:\1.WSDL的本地文件。 本文就是使用的本地文件(第2步保存的 1.wsdl文件)服务器

4 使用的Https地址,有时会报:基础链接已经关闭: 未能为 SSL/TLS 安全通道创建信任关系 。这个是由于证书问题。工具

在生成的代理类的构造方法里面加入  回调验证,基本上就能够无视证书了this

///<remarks/>
public nciicGetCondition()
{
this.Url = "http://api.nciic.org.cn/nciic_ws/services/nciicGetCondition";

//验证服务器证书回调自动验证
ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidate;
}
//这个方法 是新加的直接添加进来就好了
private static bool RemoteCertificateValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error)
{
// trust any certificate!!!
System.Console.WriteLine("Warning, trust any certificate");
//为了经过证书验证,老是返回true
return true;
}

5  调用WebService里面的方法spa

 string inLicense ="";//受权文件3d

NciicServices objText = new NciicServices();代理

//读XML文件
string inConditions = File.ReadAllText(HttpRuntime.AppDomainAppPath + "\\XMLFile1.xml");

string r = objText.nciicCheck(inLicense, inConditions);

Response.Write(r);

 

最后要感谢  苏飞博客

本文引用:http://www.cnblogs.com/sufei/archive/2010/03/14/https.html

相关文章
相关标签/搜索