ASP.NET WebApi:如何使用 WebApi HttpClient 执行文件上传的分段发布

2023-12-13

我有一个 WebApi 服务处理来自简单表单的上传,如下所示:

    <form action="/api/workitems" enctype="multipart/form-data" method="post">
        <input type="hidden" name="type" value="ExtractText" />
        <input type="file" name="FileForUpload" />
        <input type="submit" value="Run test" />
    </form>

但是,我不知道如何使用 HttpClient API 模拟同一篇文章。这FormUrlEncodedContent位很简单,但是如何将带有名称的文件内容添加到帖子中?


经过多次试验和错误,下面是实际有效的代码:

using (var client = new HttpClient())
{
    using (var content = new MultipartFormDataContent())
    {
        var values = new[]
        {
            new KeyValuePair<string, string>("Foo", "Bar"),
            new KeyValuePair<string, string>("More", "Less"),
        };

        foreach (var keyValuePair in values)
        {
            content.Add(new StringContent(keyValuePair.Value), keyValuePair.Key);
        }

        var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(fileName));
        fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = "Foo.txt"
        };
        content.Add(fileContent);

        var requestUri = "/api/action";
        var result = client.PostAsync(requestUri, content).Result;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET WebApi:如何使用 WebApi HttpClient 执行文件上传的分段发布 的相关文章

  • 如何在c++中读取pcap文件来获取数据包信息?

    我想用 C 编写一个程序来读取 pcap 文件并获取数据包的信息 例如 len sourc ip flags 等 现在我找到了如下代码 我认为它会帮助我获取信息 但是我有一些疑问 首先我想知道应该将哪个库添加到我的程序中 然后什么是 pca
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 如何使用 ViewBag 创建 BaseController

    我需要执行以下操作 我已经准备好一些控制器并正在运行 但现在我想创建一个BaseController 我的每一个Controllers应该像这样继承它 public class MySecondController BaseControll
  • 计算 Richtextbox 中所有单词的最有效方法是什么?

    我正在编写一个文本编辑器 需要提供实时字数统计 现在我正在使用这个扩展方法 public static int WordCount this string s s s TrimEnd if String IsNullOrEmpty s re
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 当我们想要返回对象的引用时,为什么我们在赋值运算符中返回 *this 而通常(而不是 this)?

    我正在学习 C 和指针 我以为我理解了指针 直到我看到这个 一方面 asterix 运算符是解引用的 这意味着它返回值所指向的地址中的值 而与号 运算符则相反 它返回值存储的地址记忆 现在阅读有关赋值重载的内 容 它说 我们返回 this因
  • 单个对象的 Monogame XNA 变换矩阵?

    我读过一些解释 XNA Monogame 变换矩阵的教程 问题是这些矩阵应用于 SpriteBatch Begin matrix 这意味着所有 Draw 代码都将被转换 如何将变换矩阵应用于单个可绘制对象 就我而言 我想转换滚动背景 使其自
  • 如何区分用户点击链接和页面自动重定向?

    拥有 C WebBrowser control http msdn microsoft com en us library system windows forms webbrowser aspx在我的 WinForms 应用程序中 并意识
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 使用接口有什么好处?

    使用接口有什么用 我听说它用来代替多重继承 并且还可以用它来完成数据隐藏 还有其他优点吗 哪些地方使用了接口 程序员如何识别需要该接口 有什么区别explicit interface implementation and implicit
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • C#:帮助理解 UML 类图中的 <>

    我目前正在做一个项目 我们必须从 UML 图编写代码 我了解 UML 类图的剖析 但我无法理解什么 lt
  • Azure 辅助角色“请求输入之一超出范围”的内部异常。

    我在辅助角色中调用 CloudTableClient CreateTableIfNotExist 方法 但收到一个异常 其中包含 请求输入之一超出范围 的内部异常 我做了一些研究 发现这是由于将表命名为非法表名引起的 但是 我尝试为我的表命
  • 不同类型指针之间的减法[重复]

    这个问题在这里已经有答案了 我试图找到两个变量之间的内存距离 具体来说 我需要找到 char 数组和 int 之间的距离 char data 5 int a 0 printf p n p n data 5 a long int distan
  • 使用 .NET Process.Start 运行时挂起进程 - 出了什么问题?

    我在 svn exe 周围编写了一个快速而肮脏的包装器来检索一些内容并对其执行某些操作 但对于某些输入 它偶尔会重复挂起并且无法完成 例如 一个调用是 svn list svn list http myserver 84 svn Docum

随机推荐

  • 应用程序因原因崩溃:集合 <__NSArrayM: 0x7071700> 在枚举时发生突变

    您能帮我找出单击分段控件后我的应用程序崩溃的原因吗 并非总是如此 但通常是在点击几次之后 错误信息 Terminating app due to uncaught exception NSGenericException reason Co
  • 将数据帧转换为 numpy 数组,值以逗号分隔

    场景 我已将 csv 以 t 分隔 读入 Dataframe 现在需要采用 numpy 数组格式进行聚类 而无需更改类型 问题 到目前为止 根据尝试的参考文献 如下 我未能获得所需的输出 我尝试获取的两列值位于 int64 float64
  • 与“int ()”的间接级别不同 (C)

    这段代码给了我这个错误 我不明白 我什至无法运行该程序 您能帮我解决这个错误吗 如果您不明白代码中的任何内容 请说出来 error C2040 CancelarPedido ppedido ppedido 与 int 的间接级别不同 pri
  • 对象从函数中的命名空间中消失

    我正在编写一个包装器来按行组合任意数量的数据集 由于有些变量可能具有唯一的变量 因此我首先限制数据中的变量 我的功能是这样工作的 rcombine lt function List Vars List2 lt lapply List sub
  • Python 中的字符串匹配

    我在列表中存储了300K个字符串 每个字符串的长度在10到400之间 我想删除那些作为其他字符串的子字符串的字符串 长度较短的字符串有更高的概率是其他字符串的子字符串 目前 我首先根据长度对这 300K 字符串进行排序 然后使用以下方法 s
  • SSRS 2008 R2 Globals!RenderFormat 导出方法

    有 7 个用于导出 SSRS 2008 报告的内置选项 我想知道在选择导出选项时是否有更简单的方法在 SSRS 中编写以下代码 IIF Globals RenderFormat Name WORD OR Globals RenderForm
  • CMake 引用逃脱难题

    我似乎无法理解 CMake 的转义规则 鉴于 set X A B C add custom target works COMMAND DUMMY 0 X X env grep X COMMENT This works add custom
  • grid.mvc 在控制器中使用过滤结果

    我正在使用 grid mvc http gridmvc codeplex com 用于过滤和排序 有谁知道如何在动作控制器中处理过滤结果 我试图通过 FormCollection 传递隐藏字段 但由于分页 仅传递可见值 或者 mvc 中是否
  • jsfiddle 上的相同代码但无法在我的服务器上运行? [复制]

    这个问题在这里已经有答案了 我很困惑 我只是想测试一个jquery simpleselect 并让它在jquery上正常工作 但是当我将它上传到我的服务器时 完全不起作用 我发誓它的代码是相同的 但也许新的眼光会有所帮助 我在这里缺少什么
  • ClearCase 动态视图中两个版本之间的差异

    比如说 我在 ClearCase 中有两个不同的动态视图 我想知道是否有任何命令可以提供报告 x lines added y lines deleted z lines changed 两个版本之间 是的 您可以使用diffstat生成一个
  • MessageStore 支持 QueueChannel,带有 Spring Integration+ Java Config

    弹簧集成参考指南指的是使用 MessageStore 实现来为 QueueChannel 提供持久性 它被提到了很多次 但所有示例都使用 XML 配置 即
  • 如何减少Android Workmanager的时间?

    我一直在检查其他链接 stackoverflow 以减少工作管理器的时间段 但我发现了以下链接 如何减少WorkManager中Periodic WorkManager的时间 上面的链接说最短时间是 15 分钟 需要立即从移动设备向服务器发
  • 如何将 MS botframework 机器人连接到 Skype for Business

    我发布了一个使用机器人框架构建的机器人 但我不知道如何将其连接到内部公司网络上的 Skype for Business 有谁知道流程是什么吗 Ed 尚不支持 Skype for Business
  • 如何创建一个数据类实现 Spring Security 特定的 UserDetails

    我正在尝试迁移一些spring webfluxkotlin 的示例代码 目前我想转换我的Spring数据蒙戈科特林样本 有一个User 原始 Data Mongo 版本看起来 Data ToString Builder NoArgsCons
  • Docusign 嵌入式签名

    我们正在使用docusign让人们签署在我们网站上注册的同意书 有人向我指出了嵌入式签名 API 据我了解 我必须创建一个我已经完成的信封 我为此使用 Net 示例 通过 API 登录正常 但尝试从 API 获取 URL 时出现以下错误 E
  • 在哪里可以找到 execve() 的源代码?

    你能给我源代码吗execve 系统调用 exec家庭 我正在使用 Linux execve 调用 sys execve sys execve 又调用 do execve 这就是操作的位置 http git kernel org p linu
  • 获取表的列名,该列名始终为空

    我有一个有很多列的表 他们中的一些人总是NULL并且不包含任何值 有没有办法使用 SQL 查询列出这些列 而不是一一测试它们 我想避免 SELECT Col1 from MyTable where Col1 IS NOT NULL SELE
  • Azure Function (Python) w/存储上传触发器因大文件上传而失败

    Azure Function Python 由文件上传到 Azure 存储触发 该功能适用 于高达 120MB 的文件 我刚刚使用 2GB 文件进行负载测试 该函数产生了错误Stream was too long 此限制记录在哪里 我将如何
  • 从 Lambda 访问 Redshift - 避免 0.0.0.0/0 安全组

    我正在尝试从 Lambda 函数访问 Redshift 数据库 当我将 0 0 0 0 0 添加到 Redshift 界面中的安全组连接时 如建议的那样 本文 我能够成功连接 然而 从安全角度来看 我觉得使用 0 0 0 0 0 不太舒服
  • ASP.NET WebApi:如何使用 WebApi HttpClient 执行文件上传的分段发布

    我有一个 WebApi 服务处理来自简单表单的上传 如下所示