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

时间:2023-03-08 23:31:57
在asp.net 中应用POST传递和接收XML文件以及参数.(转)
使用POST方式可以向别的页面发送请求,并获取返回结果。

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

.首先,建立工程,添加两个页面,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{ } } . 再来看一下接收页面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的操作。。。 }