zoukankan      html  css  js  c++  java
  • Asp.net HttpWebRequest和HttpWebResponse发送和接受任何类型数据

    发送字符串数据
    发送数据

    string strId = "guest";
            string strPassword = "123456";
    
            string postData = "userid=" + strId;
            postData += ("&password=" + strPassword);
    
            byte[] data = Encoding.UTF8.GetBytes(postData);
    
            // Prepare web request...
            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://127.0.0.1:8058/PostResult.aspx");
    
            myRequest.Method = "POST";
            myRequest.ContentType = "application/x-www-form-urlencoded";
            myRequest.ContentLength = data.Length;
            Stream newStream = myRequest.GetRequestStream();
    
            // Send the data.
            newStream.Write(data, 0, data.Length);
            newStream.Close();
    
            // Get response
            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
            
            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default);
            string content = reader.ReadToEnd();
            Response.Write(content);

    接收数据

    Stream s = Request.InputStream;
            StreamReader sr = new StreamReader(s);
            string ss = sr.ReadToEnd();        
            Response.Write(ss);

    发送任意类型数据
    发送数据

    //当前页面地址
    
                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();

    来源:北京网站建设-恒动时空

  • 相关阅读:
    [vue]vue路由篇vue-router
    [vue]spa单页开发及vue-router基础
    [css]table的拆分
    [sh]md5sum接变量,find排除,sh判断文件存在
    [vue]通过watch实现数据双向绑定
    [django]form不清空问题解决
    [vue]实现父子组件数据双向绑定
    springboot2.0 如何异步操作,@Async失效,无法进入异步
    kafka搭建笔记
    Springboot2.x+shiro+redis(Lettuce)整合填坑
  • 原文地址:https://www.cnblogs.com/superfeeling/p/3976043.html
Copyright © 2011-2022 走看看