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");
}
}
}