通信交互01 发送端
1. 文件上传
Request.Files中包含有input控件<input type="file" name="fileName" multiple="multiple" />提交的文件集合;
在前端用summit方式提交post请求; InputStream包含所有的提交信息;
2. 将文件信息读取到byte[]中
using (Stream st = files[0].InputStream)
{
data = new byte[st.Length];
st.Read(data, 0, data.Length);
}
byte[] data2 = null;
using (Stream st = files[1].InputStream)
{
data2 = new byte[st.Length];
st.Read(data2, 0, data2.Length);
}
-- 此处也可以直接提交byte[],转化为json是为了方便读取(3,4,5是为了实现此目的);
3. 将转化的byte[]转化为json
JsonString js = new JsonString();
js.Set("file1", files[0].FileName);
js.Set("data1", Util.BytesToHexString(data)); //对内容进行加密
4. 将json转化为string
string sj = js.ToString();
5. 将string再次转化为byte, 准备提交
byte[] post = Encoding.UTF8.GetBytes(sj);
6. 提交到url
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
7. 获取流,并执行写操作
using (Stream stream = myRequest.GetRequestStream())
{
stream.Write(post, 0, post.Length);
}
8. 如果有返回结果,接受
a) 获取请求响应: HttpWebResponse HttpWResp = (HttpWebResponse)myRequest.GetResponse();
b) 获取响应流: Stream myStream = HttpWResp.GetResponseStream();
c) 读取流:
StreamReader sr = new StreamReader(myStream, Encoding.UTF8);
StringBuilder strBuilder = new StringBuilder();
while (-1 != sr.Peek())
{
strBuilder.Append(sr.ReadLine());
}
--发送端至此结束,基本实现了提交时的所有功能;

浙公网安备 33010602011771号