C#中multipart/form-data提交文件和参数的实现方法

分类:知识百科 日期: 点击:0

multipart/form-data提交文件和参数的实现方法

multipart/form-data是一种提交数据的格式,可以用来提交文件和参数,在C#中可以使用HttpWebRequest类来实现这种格式的提交。

需要创建一个HttpWebRequest对象,设置好请求的URL和请求方法,比如:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://xxx.xxx.xxx/xxx");
request.Method = "POST";

设置ContentType和ContentLength,其中ContentType为multipart/form-data,ContentLength为提交数据的总长度:

request.ContentType = "multipart/form-data";
request.ContentLength = dataLength;

需要构造提交数据,包括文件和参数,构造的规则如下:

  • 每个参数或文件以"--"开头,以换行符"\r\n"结尾;
  • 每个参数或文件之间以换行符"\r\n"分隔;
  • 参数的格式为"Content-Disposition: form-data; name=\"参数名称\"\r\n\r\n参数值";
  • 文件的格式为"Content-Disposition: form-data; name=\"文件参数名称\"; filename=\"文件名\"\r\nContent-Type: 文件类型\r\n\r\n文件内容";
  • 提交数据的以"--"结尾。

将构造好的提交数据写入到请求流中,并发送请求,请求完成后,就可以得到服务器的响应结果了:

Stream requestStream = request.GetRequestStream();
requestStream.Write(data, 0, data.Length);
requestStream.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string responseStr = reader.ReadToEnd();
reader.Close();
responseStream.Close();
response.Close();
标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。