CppRestSDK 如何POST多部分数据

2024-01-10

我正在尝试将多部分数据发布到服务器,我正在从 CPR 切换到 CPPRestSDK,但我似乎找不到任何相关文档

来自心肺复苏术,https://github.com/whoshuu/cpr https://github.com/whoshuu/cpr

这意味着我已经尝试过该代码,但我似乎无法在 cpprestsdk 上找到有关多部分数据的任何文档。

    cpr::Multipart multipart_data{};

    for (size_t i = 0; i < files.size(); i++) {
        if (!is_image_or_gif(files[i].filepath)) {
            std::string entire_file = read_entire_file(files[i].filepath);
            std::string custom_filename{ files[i].spoiler ? "SPOILER_" : "" };
            multipart_data.parts.emplace_back(
                "file" + std::to_string(i),
                cpr::Buffer{ entire_file.begin(),
                             entire_file.end(),
                             custom_filename + files[i].filename },
                "application/octet-stream");
        } else {
            multipart_data.parts.emplace_back("file" + std::to_string(i),
                                              cpr::File(files[i].filepath),
                                              "application/octet-stream");
        }
    }

    auto payload_json = nlohmann::json{
        { "content", content },
        { "tts", tts }
    }.dump();
    multipart_data.parts.emplace_back("payload_json", payload_json);

    auto response = cpr::Post(
        cpr::Url{ endpoint("/channels/%/messages", id) },
        cpr::Header{ { "Authorization", format("Bot %", discord::detail::bot_instance->token) },
                     { "Content-Type", "multipart/form-data" },
                     { "User-Agent", "DiscordBot (http://www.github.com/yuhanun/dpp, 0.0.0)" },
                     { "Connection", "keep-alive" } },
        multipart_data);

哪里的file结构非常明显。

标题,很好,我发现了,我只需要一些帮助发送多部分数据基本上:)

我的预期结果是让服务器响应一个“成功”json,在本例中是发送消息的 Message 对象,但是现在,我什至不知道从哪里开始。


由于某些原因,这个问题得到了一些支持,我想回答这个问题。

我很久以前就解决了这个问题,你可以查看我的存储库以了解具体的解决方法。

https://github.com/Yuhanun/DPP/blob/master/src/channel.cpp#L108 https://github.com/Yuhanun/DPP/blob/master/src/channel.cpp#L108

https://github.com/Yuhanun/DPP/blob/master/src/utils.cpp#L180 https://github.com/Yuhanun/DPP/blob/master/src/utils.cpp#L180

享受解决方案。

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

CppRestSDK 如何POST多部分数据 的相关文章

随机推荐

  • 使用 VAPID 进行 Web 推送:400/401 未经授权的注册

    首先 我已经检查过这些问题 但没有任何运气 Web Push API Chrome 返回 未经授权的注册 https stackoverflow com questions 40801235 web push api chrome retu
  • 声明所有目标 PHONY

    考虑一个长makefile有许多目标 所有这些目标PHONY https www gnu org software make manual html node Phony Targets html 意味着目标名称不代表现有文件 我可以这样做
  • axios 补丁在 chrome 中不起作用

    我正在尝试使用 React axios 更新 drupal 网站上的一些文章 GET 和 POST 请求有效 但我无法让 PATCH 工作 通过 Postman 发送 PATCH 请求效果很好 使用 axios 时出现以下错误 Access
  • 确定 Kubernetes 端口转发的状态

    我正在尝试找到一种方法来确定 kubectl port forward 命令的状态 有一种方法可以确定 Pod 节点的准备情况 即 kubectl get pods 等 有没有办法确定 kubectl port forward 命令是否已完
  • 错误:命名空间不能直接包含字段或方法等成员[重复]

    这个问题在这里已经有答案了 我是 C 新手 在解决此错误时遇到困难 有人可以帮助我吗 该脚本用于删除不需要的快捷方式 然后安装新程序 如果尚未安装 using System using WindowsInstaller string sta
  • 我可以将数组作为参数传递给 Java 中具有可变参数的方法吗?

    我希望能够创建一个类似的函数 class A private String extraVar public String myFormat String format Object args return String format for
  • 如何在 Perl 中检索整数的序数后缀(如 st、nd、rd、th)

    我有号码 需要添加后缀 st nd rd th 例如 如果数字是 42 则后缀是 nd 521 是 st 113 是 th 等等 我需要在 perl 中执行此操作 任何指点 Use Lingua EN 数字 纵坐标 https metacp
  • ember Uncaught TypeError:在存储中加载时,未定义不是一个函数

    我正在使用 ember 来显示从我的 golang 服务器收到的数据 数据采用 JSON 形式 所以我打开了一个 websocket 并尝试推送在商店中收到的消息 但我收到了此错误 未捕获的类型错误 未定义不是函数 这是我的 app js
  • “onscroll”在重绘之后或之前触发?

    我在 div 元素上有一个滚动条 在许多浏览器上 我在 MacOS 和 Linux 上的最新版本的 Chrome 和 Firefox 上测试了这一点 浏览器似乎确保在滚动触发重绘之前调用绑定到 onscroll 的代码 换句话说 滚动时以下
  • 另一种 jquery 可排序

    我有不同大小的元素 这些元素按照网格排列 如下图所示 并且我想正确拖放这些元素 有没有一个插件可以做到这一点 可排序不能正确执行 编辑 我所说的 正确 是指它应该表现正常 意味着如果我拖放右侧的大一个 它应该智能地重新排列 也许我只需要看到
  • Azure 辅助角色中通过 HTTP 提供的 WCF 服务?

    据我所知 您可以在 Azure 辅助角色上打开端口 80 并公开运行 WCF 服务 然而 我很难想出一个场景 在这个场景中 这样做比在网络角色中运行更有意义 有任何想法吗 以辅助角色托管的 WCF 服务本质上是自托管的 从 OnStart
  • 如果没有文本区域来发送文件路径,则使用 selenium WebDriver (java) 上传文件

    我试图使用 selenium WebDriver 在 dropbox com 中上传文件 当我单击选择文件时 它会自动弹出一个窗口 它们没有用于发送文件路径的文本区域 遇到这种情况怎么处理 在某些情况下 人们使用 Robot 类 但我不明白
  • 从数组列表中删除元素后java.util.ConcurrentModificationException android

    我的 Android 应用程序中有以下代码 callback executed after fetching the data public void OnPointsFetch ArrayList
  • common lisp,如何屏蔽键盘输入

    这是 Common Lisp 中用于 Hangman 类型游戏的控制台程序 第一个玩家输入一个字符串 让第二个玩家猜测 我的输入函数如下 不幸的是 第一个玩家输入的字符仍然可见 使用 JavaScript 就很简单 只需使用密码文本输入框即
  • 将奇怪的Python日期格式转换为可读日期

    我正在使用 Python 访问某些 Web 服务的移动 API 响应包含以下奇怪的日期表示法 u Date 1409522400000 0200 这应该是 2014 年 9 月 1 日 我不确定这是什么格式 但我想将其转换为可读的格式 即d
  • React Native 属性值在引号和大括号中

    我目前正在学习 React Native 并想知道为什么某些 props 的值包含在引号中 有些值在花括号中 何时应该使用引号和大括号是否有一个标准
  • 如何提前下载所有依赖包?

    我正在编写一个circleci 脚本 我想一次性解决所有依赖关系 因为我计划在这个脚本中多次运行maven 我想让它尽可能快 我注意到 Maven 仍然会下载 poms 即使它具有最新的依赖项 为了避免下载 poms 我将 ran mave
  • 迄今为止的 Postgres 字符串示例 10Apr77 到 10/04/1977

    大家下午好 我对 PostgreSQL 相当陌生 所以如果我的问题低于平均水平 请提前道歉 我收到了一些 csv flay 文件格式的数据 并且很好地插入到临时表中 以便我预览数据 我遇到的问题之一是数据字段存储为字符串值 例如 96 年
  • python内存错误的解决方法

    如何更改此功能以使其更加高效 我不断收到 MemoryError def vectorize sequences sequences dimension 10000 results np zeros len sequences dimens
  • CppRestSDK 如何POST多部分数据

    我正在尝试将多部分数据发布到服务器 我正在从 CPR 切换到 CPPRestSDK 但我似乎找不到任何相关文档 来自心肺复苏术 https github com whoshuu cpr https github com whoshuu cp