WebClient 类的应用(一)

本文介绍如何利用System.Net目录下的WebClient类进行数据的中转处理,包括创建简单HTML页面用于数据提交,后台处理页面接收并处理数据,以及服务器端处理页面返回信息。实现了数据从客户端到服务器的高效传输。

最近,公司在上传数据时,由于数据不在一台服务器上,于是需要进行数据的中转处理。

方法是很多的,早期用的是webservice进行的。

今天发现,System.Net;目录下的WebClient的功能是相当的强大啊。于是研究一下。

废话不说了,还是用例子来说明把。


1.先做一个数据页面

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title></title>
    <style type="text/css">
        #txt_url {
            width: 361px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
       地址:<input id="txt_url" type="text" runat="server" /><br />
       姓名:<input id="txt_name" type="text" runat="server" /><br />
       性别:<input id="txt_sex" type="text" runat="server" /><br />
        <asp:Button ID="btnSend" runat="server" Text="请求" onclick="btnSend_Click" />
    </div>
    </form>
</body>
</html>

注:这是一个很简单的aspx页面,用来向服务器提交页面。


2.相应的后台页面

// 请求按钮
        protected void btnSend_Click(object sender, EventArgs e)
        {
            string url = txt_url.Value.Trim();
            string name=txt_name.Value.Trim();
            string sex = txt_sex.Value.Trim();
            byte[] myData = null;
            myData = Encoding.UTF8.GetBytes(name+"|"+sex);
            WebClient myWebClient = new WebClient();
            // 设置编码格式
            myWebClient.Encoding = Encoding.UTF8;
            // 加入头信息
            myWebClient.Headers.Add("Content-Type", "application/octet-stream");
            
             byte[] resultData=myWebClient.UploadData(url, "POST", myData);

             // 接受返回信息,并进行相应处理
             string strResult = Encoding.UTF8.GetString(resultData);


        }

注:主要是按钮处理方法,也就是为了,使用WebClient类的UploadData类方法提交到指定的页面。


3.提交到的(服务器端的)处理页面

protected void Page_Load(object sender, EventArgs e)
        {
            Stream reqStream= Request.InputStream;
            byte[] reqByte = StreamToBytes(reqStream);
            string reqStr =Encoding.UTF8.GetString(reqByte);

          
            // 返回的信息
            Response.Write("成功");
            Response.End();
           
        }

        public byte[] StreamToBytes(Stream stream)
        {
            byte[] bytes = new byte[stream.Length];
            stream.Read(bytes, 0, bytes.Length);
            // 设置当前流的位置为流的开始
            stream.Seek(0, SeekOrigin.Begin);
            return bytes;
        }

注:首先,接收所来的数据,转化为字符串,然后,进行处理,并返回相应信息。当然,处理页面也可以是ashx类型的页面,在本例中,我做的是一个普通的aspx页面。


最后,看效果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值