zoukankan      html  css  js  c++  java
  • 调用部署在SSL下的WebService的方法

    调用部署在SSL下的WebService的方法
    (Microsoft .NET Framework SDK v2.0)
     
      
    private void btnCall_Click(object sender, EventArgs e)
      
    {     
       
    // SOAP 请求信息(从WSDL分析得出)
       StringBuilder sb = new StringBuilder();
       sb.Append(
    "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n");
       sb.Append(
    "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\">\r\n");
       sb.Append("  <soap:Body>\r\n");
       sb.Append(
    "    <m:getData xmlns=\"http://127.0.0.1/xfireWebService/services/helloWorld\" />\r\n");
       
    //sb.Append("    <getData xmlns=\"http://tempuri.org/\" />\r\n");
       sb.Append("  </soap:Body>\r\n");
       sb.Append(
    "</soap:Envelope>\r\n");
       
    byte[] sendByte = System.Text.Encoding.UTF8.GetBytes(sb.ToString());
     
       
    try
       
    {
        
    // 加载证书(这个证书从IE中导出来的)
        string certificateFile = @"c:\out.cer";
        X509Certificate certificate 
    = X509Certificate.CreateFromCertFile(certificateFile);
     
        
    // 验证
        ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
     
        
    // 生成Web请求
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://192.168.100.153/CUPIT/MessageIO");
        
    // HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:2022/ws/Service.asmx");
        
        
    // 设置请求属性
        request.ClientCertificates.Add(certificate);
        request.Method 
    = "POST";
        request.ContentType 
    = "text/xml; charset=utf-8";
        request.ContentLength 
    = sendByte.Length;
     
        Stream rStream 
    = request.GetRequestStream();
        
    //发送SOAP文件
        rStream.Write(sendByte, 0, sendByte.Length);
     
        
    // 获得服务器相应(返回值)
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream receiveStream 
    = response.GetResponseStream();
        StreamReader readStream 
    = new StreamReader(receiveStream, Encoding.UTF8);
     
        
    // 把反回值保存到文件里
        string getDataFile = @"c:\getData.xml";
        
    if (File.Exists(getDataFile))
        
    {
         File.Delete(getDataFile);
        }

        FileStream fs 
    = new FileStream(getDataFile, FileMode.Create);
        StreamWriter sw 
    = new StreamWriter(fs, Encoding.UTF8);
     
        sw.Write(readStream.ReadToEnd());
        sw.Close();
        fs.Close();
     

        MessageBox.Show(
    "OK");
        request.GetResponse();
        response.Close();
        readStream.Close();
       }

       
    catch (Exception ex)
       
    {
     
        MessageBox.Show(ex.ToString());
       }

      }

    public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
      
    {
       
    return true;
      }
  • 相关阅读:
    学习进度条05
    构建之法阅读笔记03
    子数组和最大值算法
    学习进度条04
    学习进度条03
    定制小学四则运算
    单元测试示例
    构建之法阅读笔记02
    学习进度条02
    decimal扩展方法(转换为字符串,去掉末尾的0)
  • 原文地址:https://www.cnblogs.com/sun_moon_earth/p/751517.html
Copyright © 2011-2022 走看看