[.net]利用xml在两个不同的站点上传递数据
看到标题大家可能会想到WebService,可是这里我没有用到WebService,只是采用了最基本的http post方法。
在 .net 中 XmlDocument 对象有一个 Load 方法,可以从流中读取 xml。可以先用http post 方法,站点1把要处理的数据(xml 格式)发送到站点2上,站点2上对 xml 文件处理后将处理结果直接用 Response.Write() 方法写出。当然站点2上的这个页面不可以有其他别的输出,只可以有 xml 的输出。代码如下:
站点1:
//建立与站点2通讯的request对象 HttpWebRequest request = (HttpWebRequest)WebRequest.Create( site2address ); //获取cookie request.CookieContainer = Cookies; request.Method = "POST"; Stream requestStream = request.GetRequestStream(); //将 xml 数据转换为字节数组 byte [] data = System.Text.Encoding.UTF8.GetBytes( xml.OuterXml ); //发送到站点2 requestStream.Write( data, 0, data.Length ); requestStream.Flush(); requestStream.Close(); //获得站点2返回的 response 对象 HttpWebResponse response =(HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); //建立从站点2返回的 xml 对象 XmlDocument result = new XmlDocument(); result.Load( responseStream ); //关闭连接 responseStream.Close(); //设置cookie response.Close();
站点2:
//读取站点1发送过来的 xml 数据 XmlDocument requestXml = new XmlDocument(); xml.Load( Request.InputStream ); .//处理并生成 responseXml //向站点1返回数据 Response.Write( responseXml.OuterXml )