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 执行文件上传的分段发布 的相关文章

  • 除了第一列之外,Gridview 行可点击?

    我使用以下代码使 gridview 的整行可单击 protected void gridMSDS RowDataBound object sender GridViewRowEventArgs e if e Row RowType Data
  • System.MissingMethodException:找不到方法?

    以前工作的 ASP NET WebForms 应用程序现在抛出此错误 System MissingMethodException 找不到方法 The DoThis方法位于同一个类上 它应该可以工作 我有一个这样的通用处理程序 public
  • Ruby 解释器嵌入到 C 代码中

    我只是尝试书中的一个简单例子 我有一个 sum rb 文件 class Summer def sum max raise Invalid maximum max if max lt 0 max max max 2 end end 还有一个
  • 限制纬度和经度值的模数

    我有代表纬度和经度的双精度数 我可以轻松地将经度限制为 180 0 180 0 具有以下功能 double limitLon double lon return fmod lon 180 0 360 0 180 0 这是有效的 因为一端是排
  • 获取光标相对于控件的位置 - C#

    我想获取鼠标相对于鼠标指针所在控件的位置 这意味着当我将光标置于控件的起点 左上角 时 它应该给出 0 0 我正在使用以下代码 private void panel1 MouseMove object sender MouseEventAr
  • 堆栈独立的C/C++蓝牙API?

    我想知道是否有适用于 Windows XP Vista 7 x86 和 x64 的堆栈独立 C C 蓝牙 api 我的目标是创建连接并通过蓝牙发送 接收一些时间关键的数据 我的研究给了我以下选择以及这项任务的缺点 用于蓝牙的 Windows
  • 模拟 EF core dbcontext 和 dbset

    我正在使用 ASP NET Core 2 2 EF Core 和 MOQ 当我运行测试时 我收到此错误 消息 System NotSupportedException 非虚拟 可在 VB 中重写 成员上的设置无效 x gt x Movies
  • 将 Uploadify 与 Sharepoint 和 .net 结合使用

    我在共享点页面上有一些由 JQuery 生成的 html 我想在这个 html 中使用 uploadify 将文件上传到服务器 亚历山大 https stackoverflow com users 25427 alexander gyosh
  • 如何在 asp .net mvc 2 中对不直接属于我的模型的对象使用 DisplayFor()?

    我确信我在这里遗漏了一些非常简单的东西 我创建了一个自定义日期时间显示模板 使用以下方法时效果很好 但是 我遇到了这样的情况 在部分控件内 我在 for 循环中迭代模型中的对象 我想要一个 DateTime 属性来使用显示模板 但我不知道如
  • 使用 microsoft word.interop 删除 Word 文档中的空白页

    我创建了一个Word文档 它使用以下命令生成动态内容词互操作 它有一些分页符之间使用 我面临的问题是 此分页符会创建我不想向用户显示的空白页面 在某些情况下 我需要在那里添加这些分页符以维护页面布局 因此我无法考虑删除这些分页符 但我想要的
  • C# 列表框 ObservableCollection

    我正在尝试使用 ListBox DataSource ObservableCollection 但是我不知道如何在 OC 更新时让列表框自动更新 我可以在 OC 上挂接 CollectionChanged 事件 但是我需要对列表框执行什么操
  • 如何解决素数函数的大O表示法?

    我正在尝试理解 Big O 表示法 很抱歉 如果我问的问题太明显了 但我似乎无法理解这一点 我有以下 C 代码函数 我正在尝试为其计算 Big O 表示法 for i 2 i lt 100 i for j 2 j lt i j j if i
  • 那里有更好的 DateTime.Parse 吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道有一个库 付费或免费 能够处理比 DateTime Parse 使用的更常见的日期时间格式 能够
  • 会话不会保留值并始终返回 null

    我有一个网站 它完全通过 HTTPS 即使有人尝试通过 HTTP 访问 他也会被重定向到 HTTPS 我正在使用表单身份验证 最近 我更改了一个设置以使站点更安全 之后会话不保留值并且始终返回 null 设置是
  • 如何定义 Swagger UI 参数的默认值?

    我已将 Swagger Swashbuckle 集成到 NET Core 2 2 API 项目中 一切都很好 我的要求纯粹是为了方便 考虑以下 API 方法 public Model SomeEstimate SomeRequest req
  • “sizeof”对不完整类型列表结构 C 的无效应用

    我正在尝试实现一种处理页面错误的替换算法 因此 我尝试使用 malloc 创建一个循环链表 但出现以下错误 无效的应用程序sizeof to incomplete typepageInMemory 以下是代码 typedef struct
  • System.Drawing.Icon 构造函数抛出“操作成功完成”异常

    在 Windows XP 计算机上 以下代码抛出 System ComponentModel Win32Exception 并显示消息 操作成功完成 System Drawing Icon icon new System Drawing I
  • TypeScript 中 C# 类虚拟成员的等效项

    因此 在 C 中 当我创建模型类和延迟加载内容时 我会执行以下操作 public int User ID get set public int Dept ID get set 然后在我的班级稍远一点的地方 我像这样弹出我的虚拟 public
  • 任何浮点密集型代码是否会在任何基于 x86 的架构中产生位精确的结果?

    我想知道使用浮点运算的 C 或 C 代码是否会在任何基于 x86 的体系结构中产生位精确的结果 无论代码的复杂性如何 据我所知 自 Intel 8087 以来的任何 x86 架构都使用准备处理 IEEE 754 浮点数的 FPU 单元 并且
  • 从哪里开始阅读 SQLite 源代码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想了解sqlite是如何实现的 并且 想阅读源代码 我已经下载了源代码 我应该开始查看代码的哪一部分 SQLite文档页 http

随机推荐

  • 应用程序因原因崩溃:集合 <__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 服务处理来自简单表单的上传 如下所示