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

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

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

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

 public bool CheckUser(string token) {
bool flag = false; //验证成功与否的标识
//向服务器发出验证XML信息
string requestXML = "";
requestXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ecity><msgname>XXXXXX</msgname><msgversion>1.0.0</msgversion><transactionid>000000</transactionid><timestamp>"
+ DateTime.Now.ToString("yyyyMMddhhmmss") + "</timestamp><msgsender>abc</msgsender><svccont><token>"+token+"</token></svccont></ecity>"; //发送验证的XML并获取返回的XML信息
string responseXML = "";
responseXML= SendRequest(requestXML); //解析XML信息
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(responseXML);
XmlNodeList nodes = xmlDoc.SelectNodes("/ecity/msgname");
if (nodes.Count > 0)
{
//首先判断是否接口正确
if (nodes[0].InnerText.Trim().ToLower() == "getuserinforesp")
{
nodes = xmlDoc.SelectNodes("/ecity/result/rspcode");
if (nodes.Count > 0)
{
//表示验证通过
if (nodes[0].InnerText.Trim() == "0")
{
flag = true;
}
}
}
} return flag;
}

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

使用XML与远程服务器进行交互的更多相关文章

  1. android-数据存储之远程服务器存储

    一.如何编码实现客户端与服务器端的交互 <一>JDK内置原生API HttpUrlConnection <二>Android内置的包装API HttpClient浏览器 < ...

  2. [转帖]ExtJs与服务器的交互(一)

    Ext是一个非常好的Ajax框架,其华丽的外观表现确实令我们折服,然而一个应用始终离开不服务器端,因此在实现开发中我们需要对Ext与服务器端的交互技术有较为详细的了解,在开发中才能游刃有余地应用.本文 ...

  3. IDEA连接远程服务器Docker部署Spring Boot项目

    开始前的准备工作 拥有一台云服务器,我的是腾讯云服务器(CentOS7) 腾讯云服务器安装Docker,我的版本是Docker 19.03.9,关于安装和配置镜像加速器可以查阅我的另一篇博文:http ...

  4. 【WCF】如何将WCF部署到远程服务器

    一.前言       最近需要将自己写的WCF服务部署到远程服务器上,也就是公网上.宿主是IIS,在配置成功之前遇到了很多问题,问题如下: 1. WCF该怎么宿主在IIS上,为何会出现 400 Bad ...

  5. 使用VisualVM监控远程服务器JVM

    VisualVM是JDK自带的一款全能型性能监控和故障分析工具,包括对CPU使用.JVM堆内存消耗.线程.类加载的实时监控,内存dump文件分析,垃圾回收运行情况的可视化分析等,对故障排查和性能调优很 ...

  6. Ajax概述及浅谈其与服务器的交互过程

    概念: 首先AJAX不只是一个特定的客户端技术,更应算是一种技巧.Ajax技术的核心操作是用XmlHttpRequest(下称XHR)对象进行异步数据处理. 所谓异步,即通过 AJAX,JavaScr ...

  7. Eclipse发布Maven项目到远程服务器

    pom.xml中的配置依赖有两种: 一.tomcat-maven.plugin <plugin> <groupId>org.codehaus.mojo</groupId& ...

  8. 远程服务器数据交互技术:rsync,scp,mysqldump

    远程服务器间数据文件交互,可用技术:rsync,scp 速度:rsync是非加密传输,比scp快 安全:scp为加密传输 备份体量:rsync只更新差异部分,可以做增量和全量备份.scp为全量 传输方 ...

  9. Windows下使用TeamViewer连接远程服务器,以及解决“远程桌面关闭后TeamViewer不能连接”的问题

    1.本地安装TeamViewer,完成后如下: 2.远程服务器也安装TeamViewer 在本地TeamViewer中得伙伴ID,输入远程的ID,弹出如下对话框,输入密码即可. 3.这时虽然可以连接, ...

随机推荐

  1. php 调试工具及学习PHP垃圾回收机制了解引用计数器的概念

    php代码工具:Xdebug  与分析工具 WinCacheGrind Xdebug之函数大全: string xdebug_call_class()返回当前被调用的函数或方法所属的类的类名 stri ...

  2. 【英语】Bingo口语笔记(52) - sleep系列

  3. 【解题报告】PKU 2826 An Easy Problem?!

    原题链接:http://poj.org/problem?id=2826 一题很蛋疼的一题.目前为止还有一个问题我没搞清楚,问题注在代码中. 题目大意: 外面下雨了,农民Johnoson的bull(?? ...

  4. 嵌入式 GDB调试死锁示例

    死锁:一种情形,此时执行程序中两个或多个线程发生永久堵塞(等待),每个线程都在等待被 其他线程占用并堵塞了的资源.例如,如果线程A锁住了记录1并等待记录2,而线程B锁住了记录2并等待记录1,这样两个线 ...

  5. Android服务之Service

    android中服务是运行在后台的东西,级别与activity差不多.既然说service是运行在后台的服务,那么它就是不可见的,没有界面的东西.你可以启动一个服务Service来播放音乐,或者记录你 ...

  6. How do I list all tables/indices contained in an SQLite database

    How do I list all tables/indices contained in an SQLite database If you are running the sqlite3 comm ...

  7. 11、NFC技术:NDEF Uri格式解析

    NDEF Uri格式规范 与NDEF文本格式一样,存储在NFC标签中的Uri也有一定的格式 http://www.nfc-forum.org/specs/spec_dashboard 编写可以解析Ur ...

  8. 分享一些Comet开发经验

    前言 本comet技术主要用于数据库持久层的 穿越防火墙 远程访问.只要有一台中继网站,任意地点的数据库都能被访问. Comet概念介绍 WebIM.网页的客服.meebo等大家听说过了.最近还有个兄 ...

  9. CSS框架分析与网站的CSS架构

    框架(framework)是一个基本概念上的结构,用于去解决或者处理复杂的问题,是一种可复用的构架. 我们对CSS框架这个词比较陌生,但对于JavaScript框架就比较熟悉了,比如jQuery 但为 ...

  10. 设计模式 单件-Singleton

    单件模式 Singleton 什么时候使用?当需要独一无二的对象时,请想起他. 举例:线程池(threadpool),缓存(cache),对话框,处理偏好设置和注册表(registry)的对象,驱动程 ...