1、Soap Https Soap Client
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Security.Cryptography.X509Certificates; using System.Net.Security; namespace IISSoapClientTest { class Program { public static void HelloHttp(string url) { Hello h = new Hello(url); string ans = h.HelloWorld("C# http client"); Console.WriteLine(ans); Console.WriteLine(); } //同样的证书,IIS可以过,Tomcat过不去 public static void HelloHttps(string url,String certPath) { X509CertificateCollection certs = new X509CertificateCollection(); X509Certificate cert = X509Certificate.CreateFromCertFile(certPath); Hello h = new Hello(url); h.ClientCertificates.Add(cert); string ans = h.HelloWorld("C# https client"); Console.WriteLine(ans); Console.WriteLine(); } //绕过证书检查 public static void HelloHttpsWithRemoteCertificateValidationCallback(string url) { //ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(RemoteCertificateValidationCallback); Hello h = new Hello(url); string ans = h.HelloWorld("C# https client"); Console.WriteLine(ans); Console.WriteLine(); } private static bool RemoteCertificateValidationCallback(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; } static void Main(string[] args) { //HelloHttp("http://127.0.0.1:80/Hello.asmx"); //HelloHttps("https://127.0.0.1:443/Hello.asmx"); //HelloHttpsWithRemoteCertificateValidationCallback("https://127.0.0.1:443/Hello.asmx"); //HelloHttp("http://127.0.0.1:8080/SoapTest/services/HelloService"); HelloHttps("https://127.0.0.1:8443/SoapTest/services/HelloService", @"D:\DiskE\Projects\VS2010\TestProjects\SSLSocket\myKeyStore.cer"); //HelloHttpsWithRemoteCertificateValidationCallback("https://127.0.0.1:8443/SoapTest/services/HelloService"); } } }