通过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;
}
{
// TODO: validate server cert
return true;
}
private void button1_Click(object sender, EventArgs e)
{
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(RemoteCertValidate);
{
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(RemoteCertValidate);
// setup request
WebServiceRequest request = new WebServiceRequest();
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());
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";
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();
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));
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));
}