你的位置:首页 > ASP.net教程

[ASP.net教程]使用XML与远程服务器进行交互


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

此方法发送给远程服务器

 

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

24     }

 

 解析返回的复制代码
 1 public bool CheckUser(string token)
 2     {
 3         bool flag = false;  //验证成功与否的标识
 4         //向服务器发出验证 5         string request 6         request 7             + DateTime.Now.ToString("yyyyMMddhhmmss") + "</timestamp><msgsender>abc</msgsender><svccont><token>"+token+"</token></svccont></ecity>";
 8 
 9         //发送验证的10         string response11         response12 
13         //解析14         15         16         17         if (nodes.Count > 0)
18         {
19             //首先判断是否接口正确
20             if (nodes[0].InnerText.Trim().ToLower() == "getuserinforesp")
21             {
22                 nodes = 23                 if (nodes.Count > 0)
24                 {
25                     //表示验证通过
26                     if (nodes[0].InnerText.Trim() == "0")
27                     {
28                         flag = true;
29                     }
30                 }
31             }
32         }
33 
34         return flag;
复制代码

35     }

 

以上代码为真实项目中的代码,经过修改后附上的