使用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的操作。。。 }