ITPub博客

首页 > Linux操作系统 > Linux操作系统 > WebService 之 Restful Tool

WebService 之 Restful Tool

原创 Linux操作系统 作者:leintor 时间:2012-08-28 17:43:26 0 删除 编辑
通过WebService 发送一个XML的Request,来获取XML的Response
 
如何将 XSD 文件转化为类文件呢?
XSD  /classes filename.xsd
 
private static bool RemoteCertValidate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors errors)
        {
            // TODO: validate server cert
            return true;
        }
 
private void button1_Click(object sender, EventArgs e)
        {
            ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(RemoteCertValidate);
                // setup request
                WebServiceRequest request = new WebServiceRequest();
                XmlSerializer s = new XmlSerializer(typeof(WebServiceRequest));
                MemoryStream ms = new MemoryStream();
                XmlTextWriter xmlWriter = new XmlTextWriter(ms, Encoding.UTF8);
                s.Serialize(xmlWriter, request);
                String requestXml = Encoding.UTF8.GetString(ms.ToArray());
                // send request
                HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(WebService_Http_URL);
                X509Certificate2 certPfx = new X509Certificate2();
                certPfx.Import("Certificate.pfx", "", X509KeyStorageFlags.PersistKeySet);
                req.ClientCertificates.Add(certPfx);
                req.Method = "POST";
                req.ContentType = "application/x-www-form-urlencoded";
                byte[] requestXmlBytes = Encoding.UTF8.GetBytes(requestXml);
                req.ContentLength = requestXmlBytes.Length;
                Stream postStream = req.GetRequestStream();
                postStream.Write(requestXmlBytes, 0, requestXmlBytes.Length);
                postStream.Flush();
                postStream.Close();
                // get and unmarshal response
                HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
                Stream respStream = resp.GetResponseStream();
                StreamReader sr = new StreamReader(respStream, Encoding.UTF8);
                string responseXml = sr.ReadToEnd();
                s = new XmlSerializer(typeof(WebServiceResponse));
                WebServiceResponse respObj = (WebServiceResponse)s.Deserialize(new StringReader(responseXml));
        }

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20200170/viewspace-742088/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-08-04

  • 博文量
    36
  • 访问量
    139031