您的位置:首页 > 理论基础 > 计算机网络

【整理】Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据

2009-04-23 17:02 806 查看
发送数据

//当前页面地址

string currentUrl = Request.Url.ToString();

string fileName = "复制文件";

string url = currentUrl.Substring(0, currentUrl.LastIndexOf('/')) + "/Default2.aspx?id=" + fileName; //发送到的页面的地址

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

//读取一个文件

FileStream fs = new FileStream(Server.MapPath("程序更新说明书.doc"), System.IO.FileMode.Open, System.IO.FileAccess.Read);

byte[] filecontent = new byte[fs.Length];

fs.Read(filecontent, 0, filecontent.Length);

fs.Close();

fs.Dispose();

//将图片转换成base64编码的流

string a = Convert.ToBase64String(filecontent);

//读取base64编码流,发送

byte[] requestBytes = System.Text.Encoding.Default.GetBytes(a);

req.Method = "POST";

req.ContentType = "application/x-www-form-urlencoded";

req.ContentLength = requestBytes.Length;

Stream requestStream = req.GetRequestStream();

requestStream.Write(requestBytes, 0, requestBytes.Length);

requestStream.Close();

//接收返回参数,到string backstr

HttpWebResponse res = (HttpWebResponse)req.GetResponse();

StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);

string backstr = sr.ReadToEnd();

sr.Close();

res.Close();

//输出参数

Response.Write(backstr);

接受数据

//接收到的参数

string bb = Request.QueryString["id"];

Encoding myEncoding = Encoding.GetEncoding("utf-8");

//接收传递过来的数据流

Stream resStream = Request.InputStream;

byte[] filecontent = new byte[resStream.Length];

//将数据流读入byte数组

resStream.Read(filecontent, 0, filecontent.Length);

//数组转换为string以便转换base64使用

string a = myEncoding.GetString(filecontent);

//将string读取base64解密到byte数组

byte[] filecontent2 = Convert.FromBase64String(a);

//写入目录

File.WriteAllBytes(Server.MapPath(bb + ".doc"), filecontent2);

//返回值

Response.Write("ok");

Response.End();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐