博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用XML与远程服务器进行交互
阅读量:6939 次
发布时间:2019-06-27

本文共 2508 字,大约阅读时间需要 8 分钟。

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

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

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 }

 

 

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

1 public bool CheckUser(string token) { 2     bool flag = false;  //验证成功与否的标识 3     //向服务器发出验证XML信息 4     string requestXML = ""; 5     requestXML = "
XXXXXX
1.0.0
000000
" 6 + DateTime.Now.ToString("yyyyMMddhhmmss") + "
abc
"+token+"
"; 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 }

 

 

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

转载于:https://www.cnblogs.com/olmlo/p/3576272.html

你可能感兴趣的文章
[转载]中国648个超级亿万富豪都是谁?
查看>>
快捷键
查看>>
mac系统快捷键大全详细介绍
查看>>
shell列变行
查看>>
IOS学习笔记(七)之UISegmentedControl分段控件的基本概念和使用方法
查看>>
结构体指定初始化和位初始化
查看>>
提高性能,MySQL 读写分离环境搭建(二)
查看>>
忘记mysql密码操作
查看>>
Android 动画效果学习笔记
查看>>
Task案例1-处理多个任务
查看>>
shell(3)应用
查看>>
Vue2.0 新手入门 — 从环境搭建到发布
查看>>
赛门铁克发现新的APT组织Gallmaker,目标锁定全球政府、军事和国防机构
查看>>
Spring Cloud-honghu Cloud分布式微服务云系统--云架构代码结构构建
查看>>
linux下5秒创建rhel7虚拟机
查看>>
Xpath语法
查看>>
JAVA-给想学JAVA的小伙伴一小点点基础
查看>>
OpenResty + Lua 访问Redis
查看>>
11.2 Apache虚拟主机
查看>>
移动APP及游戏推广,有预算为什么还起不了量
查看>>