看到标题大家可能会想到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
Response.Write( responseXml.OuterXml )