Hi,
I am using HttpWebRequest to post XML data to SSL URL.
I am using .NET 4.0 and tried many things but nothing worked for me.
1. I have tried adding Cert using in request but it also fails.
X509Certificate Cert
try
{
ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(ValidateServerCertificate);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
X509Certificate Cert = null
#region Certificates
string issuerName = "My CA";
X509Store store = new X509Store(StoreName.Root);
store.Open(OpenFlags.MaxAllowed);
X509CertificateCollection col =
(X509CertificateCollection)store.Certificates.Find(X509FindType.FindByIssuerName, issuerName, true);
Cert = col[0];
#endregion
string RequestString = clsReq.GetModifiedXML();
string URL = @"https://url/abc";
HttpWebRequest salesRequest = (HttpWebRequest)WebRequest.Create(URL);
// Adding Certificate in request....
salesRequest.ClientCertificates.Add(Cert);
salesRequest.KeepAlive = false;
salesRequest.Credentials = CredentialCache.DefaultCredentials;
salesRequest.Method = "POST";
//salesRequest.ContentType = "application/x-www-form-urlencoded";
// salesRequest.ContentType = "text/html";
salesRequest.ContentType = "text/xml";
StreamWriter postdatastream = new StreamWriter(salesRequest.GetRequestStream());
postdatastream.WriteLine(RequestString);
postdatastream.Close();
HttpWebResponse salesResponse = (HttpWebResponse)salesRequest.GetResponse();
if (salesResponse.StatusCode == HttpStatusCode.OK)
{
StreamReader streader = new StreamReader(salesResponse.GetResponseStream());
string result = streader.ReadToEnd();
streader.Close();
Response.Write(result);
}
salesResponse.Close();
}
catch (Exception ex)
{
}