首页 > 其他 > 详细

使用XML与远程服务器进行交互

时间:2014-03-03 02:04:16      阅读:554      评论:0      收藏:0      [点我收藏+]

最近在做的一个项目其中的一部分是与远程服务器进行交互,确定身份验证的合法性,于是编写了SendRequest方法

此方法发送给远程服务器XML请求,服务器经过处理后,返回XML回应,由此方法接收到后进行返回。

bubuko.com,布布扣
 1 protected string SendRequest(string strXML) { 
 2     string str = ""; //双方协定的XML格式 
 3     Encoding encoding = Encoding.UTF8; //接收页面       
 4     string strUrl = "http://localhost:14360/WebSite16/Handler.ashx"; 
 5     byte[] data = encoding.GetBytes(strXML); //准备请求... 
 6     HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl); 
 7     myRequest.Method = "POST"; 
 8     myRequest.ContentType = "text/xml;charset=utf-8"; 
 9     myRequest.ContentLength = data.Length; //身份认证,特别注意,参数用户名,密码 
10     NetworkCredential cred = new NetworkCredential("wcadmin", "wcadmin"); 
11     myRequest.Credentials = cred; //在信息请求头部加入验证信息,不然验证不通过 
12     myRequest.PreAuthenticate = true; 
13     Stream newStream = myRequest.GetRequestStream(); //发送数据 
14     newStream.Write(data, 0, data.Length); 
15     newStream.Close(); 
16     WebResponse response = myRequest.GetResponse(); 
17     Stream resStream = response.GetResponseStream(); 
18     StreamReader sr = new StreamReader(resStream, System.Text.Encoding.UTF8); 
19     str = sr.ReadToEnd();//接收返回值,返回值可以是xml 
20     resStream.Close(); 
21     sr.Close(); 
22     return str; 
23 }
bubuko.com,布布扣

 

 

 解析返回的XML的方法如下代码片段:

bubuko.com,布布扣
 1 public bool CheckUser(string token) {
 2     bool flag = false;  //验证成功与否的标识
 3     //向服务器发出验证XML信息
 4     string requestXML = "";
 5     requestXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ecity><msgname>XXXXXX</msgname><msgversion>1.0.0</msgversion><transactionid>000000</transactionid><timestamp>"
 6         + DateTime.Now.ToString("yyyyMMddhhmmss") + "</timestamp><msgsender>abc</msgsender><svccont><token>"+token+"</token></svccont></ecity>";
 7 
 8     //发送验证的XML并获取返回的XML信息
 9     string responseXML = "";
10     responseXML= SendRequest(requestXML);
11 
12     //解析XML信息
13     XmlDocument xmlDoc = new XmlDocument();
14     xmlDoc.LoadXml(responseXML);
15     XmlNodeList nodes = xmlDoc.SelectNodes("/ecity/msgname");
16     if (nodes.Count > 0)
17     {
18         //首先判断是否接口正确
19         if (nodes[0].InnerText.Trim().ToLower() == "getuserinforesp")
20         {
21             nodes = xmlDoc.SelectNodes("/ecity/result/rspcode");
22             if (nodes.Count > 0)
23             {
24                 //表示验证通过
25                 if (nodes[0].InnerText.Trim() == "0")
26                 {
27                     flag = true;
28                 }
29             }
30         }
31     }
32 
33     return flag;
34 }
bubuko.com,布布扣

 

 

转自:http://www.cnblogs.com/shunyao8210/archive/2011/09/19/2181075.html

使用XML与远程服务器进行交互,布布扣,bubuko.com

使用XML与远程服务器进行交互

原文:http://www.cnblogs.com/olmlo/p/3576272.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!