在用http發送一個DataSet時﹐為什么不能直接用byte[]發送呢?
通過Http方式將Winform中的DataSet序列化后傳送到Web服務器中.
Winform中﹕
private void btnSend_Click(object sender, System.EventArgs e)
{
System.IO.MemoryStream strm=new System.IO.MemoryStream(); System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bfmt=new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
bfmt.Serialize(strm,dstMain); System.Net.HttpWebRequest htp=(System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(tbxIP.Text);
htp.Method = "POST";
htp.ContentType = "application/x-www-form-urlencoded";
int i=0;
long L=strm.Length;
htp.ContentLength=L;
System.IO.Stream strm2=htp.GetRequestStream();
byte[] buf=strm.ToArray(); strm2.Write(buf,0,buf.Length);
System.Net.HttpWebResponse rst=(System.Net.HttpWebResponse)htp.GetResponse();
MessageBox.Show(rst.StatusDescription.ToString());
strm2.Close();
strm.Close();
}
ASP中﹕
private void Page_Load(object sender, System.EventArgs e)
{
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bfmt=new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.Data.DataSet dst=(System.Data.DataSet)bfmt.Deserialize(Page.Request.InputStream);
dst.WriteXml(Server.MapPath("B.xml"));
}