加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebClient 类的应用(一)

发布时间:2020-12-17 01:13:14 所属栏目:安全 来源:网络整理
导读:最近,公司在上传数据时,由于数据不在一台服务器上,于是需要进行数据的中转处理。 方法是很多的,早期用的是webservice进行的。 今天发现,System.Net;目录下的WebClient的功能是相当的强大

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

方法是很多的,早期用的是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,bytes.Length);
??????????? // 设置当前流的位置为流的开始
??????????? stream.Seek(0,SeekOrigin.Begin);
??????????? return bytes;
??????? }

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


最后,看效果:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读