webclient上传数据到ashx服务
来源:互联网 发布:java jdk下载 列表 编辑:程序博客网 时间:2024/05/19 00:38
1.上传参数
UploadData()方法可以上传数据参数,需要将所要上传的数据拼成字符。
// 创建一个新的 WebClient 实例.
WebClient myWebClient = new WebClient();
string postData = "Username=admin&Password=admin";
// 注意这种拼字符串的ContentType
myWebClient.Headers.Add("Content-Type","application/x-www-form-urlencoded");
// 转化成二进制数组
byte[] byteArray = Encoding.ASCII.GetBytes(postData);
// 上传数据,并获取返回的二进制数据.
byte[] responseArray = myWebClient.UploadData(远程服务URI,"POST",byteArray);
2.上传文件
UploadFile()方法可以上传文件,只要获取文件上传文件的地址即可。
String uriString = "远程服务URI";
// 创建一个新的 WebClient 实例.
WebClient myWebClient = new WebClient();
string fileName = @"文件地址";
// 直接上传,并获取返回的二进制数据.
byte[] responseArray = myWebClient.UploadFile(uriString,"POST",fileName);
3.上传参数和文件
使用UploadData()方法,把文件拼接成byte[] data数据Post过去,就可以达到同样的效果。
System.IO.FileStream zipfs = new System.IO.FileStream(ZipPath, FileMode.Open, FileAccess.Read);//testdata.zip byte[] byteZipFile = new byte[zipfs.Length]; zipfs.Read(byteZipFile, 0, Convert.ToInt32(zipfs.Length)); zipfs.Close(); string formStart = "--margin\r\n" + "Content-Disposition: form-data; name=\"FileData\"; FileName=\"" + ZipName + "\"\r\n" + "Content-Type: application/octet-stream\r\n\r\n";//; LayerName=\"GDGA_ZD\" string formEnd = "\r\n--margin--\r\n"; byte[] btStart = Encoding.UTF8.GetBytes(formStart); byte[] btEnd = Encoding.UTF8.GetBytes(formEnd); byte[] bytes = new byte[btStart.Length + byteZipFile.Length+ btEnd.Length]; btStart.CopyTo(bytes, 0); byteZipFile.CopyTo(bytes, btStart.Length); btEnd.CopyTo(bytes, btStart.Length + byteZipFile.Length); WebClient client = new WebClient(); client.Encoding = System.Text.Encoding.UTF8; client.Headers.Add("Content-Type", "multipart/form-data; boundary=margin"); client.Headers.Add("ContentLength", bytes.Length.ToString()); client.UploadData(new Uri("你的服务地址"), "POST", bytes);4.上传多文件(不同类型文件)
同理,使用UploadData()方法,把不同的文件拼接成byte[],再合并 data数据Post过去
例如:
// 生成需要上传的二进制数组 CreateBytes cb = new CreateBytes(); // 所有表单数据 ArrayList bytesArray = new ArrayList(); //zip文件流 FileStream zipfs = new FileStream(ZipPath, FileMode.Open,FileAccess.Read, FileShare.Read); string ContentType = "application/octet-stream"; byte[] zipfileBytes = new byte[zipfs.Length]; zipfs.Read(zipfileBytes, 0, Convert.ToInt32(zipfs.Length)); bytesArray.Add(cb.CreateFieldData("FileData", ZipPath, ContentType, zipfileBytes)); //xml文件流 FileStream xmlfs = new FileStream(Checkxml, FileMode.Open, FileAccess.Read, FileShare.Read); string contentType = "text/xml"; byte[] xmlfileBytes = new byte[xmlfs.Length]; xmlfs.Read(xmlfileBytes, 0, Convert.ToInt32(xmlfs.Length)); bytesArray.Add(cb.CreateFieldData("xmlData", Checkxml, contentType, xmlfileBytes)); // 合成所有文件并生成二进制数组 byte[] bytes = cb.JoinBytes(bytesArray); WebClient client = new WebClient(); client.Encoding = System.Text.Encoding.UTF8;//定义对象语言 client.Headers.Add("Content-Type", cb.ContentType); client.Headers.Add("ContentLength", bytes.Length.ToString()); client.UploadData(new Uri("上传服务地址"), "POST", bytes);
- webclient上传数据到ashx服务
- WebClient上传文件到ashx
- [C#]使用WebClient上传文件并同时Post表单数据字段到服务端
- 使用WebClient上传文件并同时Post表单数据字段到服务端
- c# WebClient上传文件到远程服务器
- c++客户端文件上传到c#ashx
- WebClient方式访问服务和WebClient方式异步访问数据服务
- 用WebClient将客户端上传文件保存到远端文件服务器
- 使用WebClient或HttpWebRequest模拟上传文件和数据
- 使用WebClient或HttpWebRequest模拟上传文件和数据
- 使用WebClient或HttpWebRequest模拟上传文件和数据
- WebClient实现通讯(一)(上传和下载字符串数据)
- 使用WebClient或HttpWebRequest模拟上传文件和数据
- WebClient上传文件Jsp接受文件流数据
- WebClient上传文件Jsp接受文件流数据
- Silverlight WebClient 上传实现
- webclient上传文件
- 利用WebClient上传文件
- 详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()《转载》
- C++调用外部应用程序的方法的整理总结
- python学习笔记三(scrapy)
- Linux查找进程并kill
- git建立追踪关系的小技巧
- webclient上传数据到ashx服务
- 关于基于http的嵌入式linux与服务器的get,post解析理解
- tomcat server.xml中文版
- Linux使用jstat命令查看jvm的GC情况
- 块作用域来申明function防止污染全局变量
- iOS AVSpeechSynthesizer进行文字转语音
- 一步一步教你用优雅的Direct3D11代码画一个三角形
- Ubuntu下查看软件版本及安装位置
- 配置hadoop2.4.0记录