zoukankan      html  css  js  c++  java
  • C# 使用multipart form-data方式post数据到服务器

    https://www.jb51.net/article/193612.htm
    C# 使用multipart form-data方式post数据到服务器

    使用multipart/form-data方式提交数据与普通的post方式有一定区别。multipart/form-data的请求头必须包含一个特殊的头信息:Content-Type,其值必须为multipart/form-data。另外还需要规定一个内容分割符用于分割请求体中的多个post的内容,如文件内容和文本内容,只有这样服务端才能正常解析数据。但是,multipart/form-data的基础还是post,它是由post方法来实现的。下面分别给出两种方法提交multipart/form-data数据。

    1、使用form表单提交数据

    1
    2
    3
    4
    5
    6
    <form action="xx.php" method="post" enctype="multipart/form-data">
      <input type="text" name="uname" class="uname" /><br />
      <input type="text" name="email" class="email" /><br />
      <input type="file" name="file" class="file" /><br />
      <input type="submit" name="submit" value="提交"/>
    </form>

    form表单提交数据的两种方式。

    (1)application/x-www-form-urlencoded 不能用于上传文件,只能提交文本,当然如果有file控件的话也只能提交文件名。
    (2)multipart/form-data 用于上传文件。

    2、使用HttpClient和MultipartFormDataContent

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    using (var client = new HttpClient())
    using (var content = new MultipartFormDataContent())
    {
      client.BaseAddress = new Uri("http://localhost/WapAPIExp/");
      var fileContent1 = new ByteArrayContent(File.ReadAllBytes(@"D:xx.jpg"));
      fileContent1.Headers.ContentDisposition = new ContentDispositionHeaderValue("file")
      {
        FileName = "xx.jpg"
      };
      var dataContent = new ByteArrayContent(Encoding.UTF8.GetBytes("1"));
      dataContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form")
      {
        Name = "type"
      };
      content.Add(fileContent1);
      content.Add(dataContent);
      var result = client.PostAsync("api/Upload", content).Result;
    }

    到此这篇关于C# 使用multipart form-data方式post数据到服务器的文章就介绍到这了,更多相关multipart form-data post 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

                            <div class="art_xg">
                                <b>您可能感兴趣的文章:</b><ul><li><a href="/article/191323.htm" title="C#获取本地IP的四种方式示例详解" target="_blank">C#获取本地IP的四种方式示例详解</a></li><li><a href="/article/190663.htm" title="C#监测IPv4v6网速及流量的实例代码" target="_blank">C#监测IPv4v6网速及流量的实例代码</a></li><li><a href="/article/178579.htm" title="c#获取客户端IP地址(考虑代理)" target="_blank">c#获取客户端IP地址(考虑代理)</a></li><li><a href="/article/154439.htm" title="C#应用ToolStrip控件使用方法" target="_blank">C#应用ToolStrip控件使用方法</a></li><li><a href="/article/149100.htm" title="C#使用GZipStream实现文件的压缩与解压" target="_blank">C#使用GZipStream实现文件的压缩与解压</a></li><li><a href="/article/148198.htm" title="C# 使用SharpZipLib生成压缩包的实例代码" target="_blank">C# 使用SharpZipLib生成压缩包的实例代码</a></li><li><a href="/article/139717.htm" title="C#自定义IP输入框控件" target="_blank">C#自定义IP输入框控件</a></li><li><a href="/article/136873.htm" title="c# 文件压缩zip或将zip文件解压的方法" target="_blank">c# 文件压缩zip或将zip文件解压的方法</a></li><li><a href="/article/122230.htm" title="C#多线程爬虫抓取免费代理IP的示例代码" target="_blank">C#多线程爬虫抓取免费代理IP的示例代码</a></li><li><a href="/article/122143.htm" title="C# JavaScriptSerializer序列化时的时间处理详解" target="_blank">C# JavaScriptSerializer序列化时的时间处理详解</a></li><li><a href="/article/118249.htm" title="使用C# 的webBrowser写模拟器时的javascript脚本调用问题" target="_blank">使用C# 的webBrowser写模拟器时的javascript脚本调用问题</a></li><li><a href="/article/115971.htm" title="C#实现文件压缩与解压的方法示例【ZIP格式】" target="_blank">C#实现文件压缩与解压的方法示例【ZIP格式】</a></li><li><a href="/article/202400.htm" title="c# 获得本地ip地址的三种方法" target="_blank">c# 获得本地ip地址的三种方法</a></li></ul>
                            </div>
    
                        </div>
  • 相关阅读:
    Java基础知识强化之集合框架笔记20:数据结构之 栈 和 队列
    Java基础知识强化之集合框架笔记19:List集合迭代器使用之 并发修改异常的产生原因 以及 解决方案
    模块已加载,但对dllregisterServer的调用失败
    sql回滚
    BAT 批处理脚本 教程
    shell脚本小技巧
    shell if
    REDHAT4.8安装yum
    Linux中文显示乱码解决
    Nginx配置文件详细说明
  • 原文地址:https://www.cnblogs.com/sunny3158/p/14979328.html
Copyright © 2011-2022 走看看