将HTTP请求代码转换为HTTPS请求代码
问题描述:
我有下面的代码正在发送HTTP协议的XML文件,并获得响应作为xml文件从网络服务器和它的HTTP协议工作正常,但现在我需要发送这样的XML文件转换为HTTPS协议(而不是http),并且需要以xml文件的形式获取响应。发送XML文件,并从HTTP响应代码:将HTTP请求代码转换为HTTPS请求代码
string targetUri = "http://www.hostelspoint.com/xml/xml.php"; /*this will be like: "https://www.hostelspoint.com/xml/xml.php"*/
System.Xml.XmlDocument reqDoc = new System.Xml.XmlDocument();
reqDoc.Load(Server.MapPath("~\\getdetail.xml"));
string formParameterName = "OTA_request";
string xmlData = reqDoc.InnerXml;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetUri);
string sendString = formParameterName + "=" + HttpUtility.UrlEncode(xmlData);
//string sendString = HttpUtility.UrlEncode(xmlData);
byte[] byteStream;
byteStream = System.Text.Encoding.UTF8.GetBytes(sendString);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteStream.LongLength;
using (Stream writer = request.GetRequestStream())
{
writer.Write(byteStream, 0, (int)request.ContentLength);
writer.Flush();
}
HttpWebResponse resp = (HttpWebResponse)request.GetResponse();
string respStr = "";
if (request.HaveResponse)
{
if (resp.StatusCode == HttpStatusCode.OK || resp.StatusCode == HttpStatusCode.Accepted)
{
StreamReader respReader = new StreamReader(resp.GetResponseStream());
respStr = respReader.ReadToEnd(); // get the xml result in the string object
XmlDocument doc = new XmlDocument();
doc.LoadXml(respStr);
Label1.Text = doc.InnerXml.ToString();
}
}
答
不应该存在于应用程序级别在你的代码太大的区别,如HTTP或HTTPS的区别仅在传输层,没有。 这里可能会出现的问题是,如果targetUri中使用的服务器证书在您的服务器上受信任。在这种情况下,HTTPS身份无法验证。
我对你的理解是:你在说如果我们想用HTTPS而不是HTTP工作,那么只有上面代码中的URL才会变成HTTPS而不是HTTP。否则他们不需要在代码中进行更改? – 2009-12-29 07:46:19
是的,只要您信任来自服务器的HTTPS证书即可。 – naivists 2009-12-29 09:08:35