在asp.net 中应用POST传递和接收XML文件以及参数.

使用POST方式可以向别的页面发送请求,并获取返回结果。

可以从一个页面发送POST到另一个页面,也可以在winform工程中使用HTTPRequest发送POST到一个页面。我们拿ASP.NET的aspx页面做个例子,从一个aspx页面POST.aspx ,发送请求到Receive.aspx页面。

1.首先,建立工程,添加两个页面,Post.aspx和Receive.aspx

   在post页面中放一个BUTTON,在它的click方法中我们可以写这样的一段代码:

private void Button1_Click(object sender, System.EventArgs e)
  {

 //XML文件路径

  string xmlFileName = Server.MapPath("File/Frame.xml");

   HttpWebRequest req = null;
   try
   {
    //设置要POST到的页面URL,这里中文参数或者有特殊符号的,要进行编码.
    string url = "http://localhost/Receive.aspx" +
                             "?DwgFileName="+HttpUtility.UrlEncode("NNN+10111452505252706++2.bmp,NNN+10111457375757706++13.bmp")+
              "&PltFileName="+HttpUtility.UrlEncode("NNN+10110934363434706++主页.JPG");

   //创建一个HttpWebRequest对象
    req =  (HttpWebRequest) HttpWebRequest.Create(url);

   //设置它提交数据的方式post
    req.Method = "POST";

   //设置 Content-type HTTP 标头的值
    req.ContentType = "text/xml";// "application/x-www-form-urlencoded;charset=gb2312";
    
    using (StreamWriter requestWriter = new StreamWriter(req.GetRequestStream()))
    {

    //定义一个StreamReader对象,用于读取xml文件的内容
     StreamReader reader = new StreamReader(xmlFileName);
     string ret = reader.ReadToEnd();
     reader.Close();

     requestWriter.WriteLine(ret);//将读取的内容写入到RequestStream中。
    }
    Response.Write("发出去了");
   }
   catch(Exception ex)
   {
    throw ex;
   }
   finally{
   
   }

}

2. 再来看一下接收页面Receive.aspx

    在Receive.aspx页面的PageLoad方法中进行接收POST过来的请求。

private void Page_Load(object sender, System.EventArgs e)
  {
   if(Request.RequestType == "POST")
   {
    //Response.ContentType = "text/xml";

    string pltFileName = Request.QueryString["PltFileName"];//PLT文件名
    string dwgFileName = Request.QueryString["DwgFileName"];//dwg文件名列表 :111.dwg,222.dwg,333.dwg.....

    //接收并读取POST过来的XML文件流
    StreamReader reader = new StreamReader(Request.InputStream);
    String xmlData = reader.ReadToEnd(); 
        try
    {
     //声明一个XMLDoc文档对象,LOAD()xml字符串
     XmlDocument doc = new XmlDocument();
     doc.LoadXml(xmlData);
     //得到XML文档根节点
     XmlElement root = doc.DocumentElement;

     .....进行自己对XML的操作。。。

}

posted @ 2006-11-01 23:40  meteorcui  阅读(10118)  评论(0编辑  收藏  举报