原 QNetworkAccessManager实现curl上传表单文件

2023-10-27

 心酸的过程我就不说了,直接上菜。

    如何用Qt实现:curl -F file=@task.plist http://www.fatjb.com/uploadfile

QFile file(m_sTaskPlistPath);
if(file.exists())
{
    if(!file.open(QIODevice::ReadOnly))
    {
        QMessageBox::warning(this, tr("Warning"), tr("打开task.plist失败!"), QMessageBox::Yes);
        return;
    }
    QByteArray fileContent = file.readAll();
    file.close();
    

    QString sCrlf="\r\n";
    qsrand(QDateTime::currentDateTime().toTime_t());
    QString b=QVariant(qrand()).toString()+QVariant(qrand()).toString()+QVariant(qrand()).toString();
    QString sBoundary="---------------------------"+b;
    QString sEndBoundary=sCrlf+"--"+sBoundary+"--"+sCrlf;
    QString sContentType="multipart/form-data; boundary="+sBoundary;
    sBoundary="--"+sBoundary+sCrlf;
    QByteArray boundary=sBoundary.toAscii();
    
    QByteArray sendData;

    sendData.append(boundary);
    sBoundary = sCrlf + sBoundary;
    boundary = sBoundary.toAscii();
    sendData.append(QString("Content-Disposition: form-data; name=\"file\"; filename=\""+QString(m_sTaskPlistPath.toUtf8().constData())+"\""+sCrlf).toAscii());
    sendData.append(QString("Content-Transfer-Encoding: 8bit"+sCrlf).toAscii());
    sendData.append(sCrlf.toAscii());
    sendData.append(fileContent);

    sendData.append(sEndBoundary.toAscii());
    

    QNetworkRequest req(QUrl(m_sAddress+m_sUploadPath));
    req.setHeader(QNetworkRequest::ContentTypeHeader, sContentType.toAscii());
    req.setHeader(QNetworkRequest::ContentLengthHeader, QVariant(sendData.size()).toString());
    QNetworkReply* pReply = m_pManager->post(req, sendData);
    connect(pReply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(NetworkError(QNetworkReply::NetworkError)));
}
else
{
    QMessageBox::warning(this, tr("Warning"), tr("task.plist不存在!"), QMessageBox::Yes);
}

    为什么我会知道?下个wireshark抓包,然后跟着正确包慢慢调就知道了,果然还是不能懒。


FROM:  https://my.oschina.net/chrisforbt/blog/483103




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

原 QNetworkAccessManager实现curl上传表单文件 的相关文章

  • uni-app,解决方案, 已存在待跳转页面,请不要连续多次跳转页面问题

    问题的解决思路 设置全局变量flag 以及封装跳转函数 设置定时器不允许几秒钟重复跳转 1 如果采用 uni navigateTo 跳转 jumpFlag function path 跳转开关 if getApp globalData is
  • Arduino基础项目篇-基于Arduino的智能小车

    从这篇开始 后续会陆陆续续写一些自己入门单片机以来做过的一些项目教程 y由于不是现在做的 所以我可能没有调试的照片啥之类的 而且做的东西大多都拆了 我刚入门Arudino时 做的第一个项目 就是Arduino智能小车 做出来的小车具有红外避
  • 华大单片机KEIL报错_WEAK的解决方案

    1 Keil编译无法识别 WEAK时的问题清单如下 在使用Keil编译有时出现无法识别 WEAK的问题 截图如下 提示的错误信息如下 mcu common interrupts hc32l13x c 72 error 77 D this d
  • ACL技术-------访问控制列表

    1 ACL原理 设备根据事先设置好的报文匹配规则对经过该设备的流量进行匹配 然后对报文执行预先设定的处理动作 2 ACL功能 1 访问控制 在流量流入或者流出的接口上匹配流量 动作 允许 permit 拒绝 deny 2 抓取流量 3 AC
  • Error in py_run_file_impl(file, local, convert) : ModuleNotFoundError: No module named ‘igraph‘

    在HPC平台上跑我的R语言代码 结果一直报错说 Error in py run file impl file local convert ModuleNotFoundError No module named igraph 我就知道是我R语
  • 单片机--USART

    目录 1 通信的基础知识 2 USART 3 串口通信协议 4 相关寄存器 串口控制寄存器 波特率寄存器 中断和状态寄存器 编辑 数据发送寄存器 数据接收寄存器 5 USART功能框图 6 串口发送实验 实验要求 1 观察实物 2 分析原理
  • 路由与路由表简介

    路由的概念 从字面上来说 路由 就是路径选择的意思 路由是指网络设备通过网络将信息正确传输到指定目的地的方式 而路由器正是这样的 网络设备 它可以根据目标网络选择 最优 的路径来决定下一跳跳向哪个路由器 但是什么是最优的路径 最优并不意味着
  • Go语言网络编程(socket编程)TCP粘包

    1 TCP粘包 服务端代码如下 socket stick server main go func process conn net Conn defer conn Close reader bufio NewReader conn var
  • 12306登录验证码识别

    最近在研究12306验证码识别 前期的12306查询验证码识别已经上线了 详见http download csdn net download ghost man 10160932的博客 里面的12306查询验证码已经上线了 可以去体验一下
  • linux服务器前后端部署遇到的问题以及解决办法

    nginx部署前端 将静态资源打包上传到自己指定的目录 nginx 配置 到这里 前端就部署完成了 当时访问的时候发现只能加载html页面 所有的js css 图片等等全部404 原因是没有指定静态资源的绝对路径 因为我用的宝塔面板的ngi
  • 如何添加Burp Suite添加https证书

    Burp Suite是一款强大的安全测试工具 可以用来设置代理 抓取http数据包 如果添加了https证书 就可以抓取https数据包 一 前期准备 联网的电脑一台 Burp Suite软件 firefox浏览器 并安装proxy swi
  • 第1195期机器学习日报(2017-12-26)

    机器学习日报 2017 12 26 Moments in Time IBM MIT联合提出最新百万规模视频动作理解数据集 ChatbotsChina 2017深度学习框架大事记 wx SWATS 自动由Adam切换为SGD而实现更好的泛化性
  • HTML与计算机代码

    目录 计算机代码 HTML 计算机代码格式 HTML 键盘格式 实例 HTML 样本格式 实例 HTML 代码格式 实例 实例 实例 HTML 变量格式化 实例 HTML 计算机代码元素 一个完整的实例 计算机代码 var person f
  • 2023年第十四届蓝桥杯单片机开放与设计省赛微析与经验分享

    前言 2023年4月8日 就在昨天 本人刚参与了第十四届蓝桥杯单片机开放与设计省赛 整体做下来 且不谈客观题 今年的程序题 个人感觉有点像大杂烩 题量大 细节多 而且有些要求定义不够清晰 所以本人这次做的不够完美 并且因为时间问题有些小功能
  • 教妹学Java(七):究竟什么是JVM?

    大家好 我是沉默王二 一个和黄家驹一样身高 和刘德华一样颜值的程序员 本篇文章通过我和三妹对话的形式来谈一谈 究竟什么是 JVM 教妹学 Java 没见过这么有趣的标题吧 语不惊人死不休 没错 本篇文章的标题就是这么酷炫 接受不了的同学就别
  • 30天自制操作系统第3天harib00g

    30天自制操作系统 第3天进入32位模式并导入 C 语言 确认操作系统的执行情况 harib00g 准备材料 windows环境 VMware Workstation Visual Studio Code 程序和源代码 https pan
  • openmmlab第五次作业

    MMDetection是商汤和港中文大学针对目标检测任务推出的一个开源项目 它基于Pytorch实现了大量的目标检测算法 把数据集构建 模型搭建 训练策略等过程都封装成了一个个模块 通过模块调用的方式 我们能够以很少的代码量实现一个新算法
  • 解封装(七):av_read_frame读取帧数据函数分析和产生的空间问题分析,以及AVPacket分析

    1 在完成了视频的格式的解析 即音视频编码参数获取之后 我们就可以开始读取具体的音视频帧数据 av read frame 我们要忠实的是 函数调用之后是否应该涉及到清理方法 先看下上面函数的参数 AVFormatContext s 文件格式

随机推荐

  • hadoop之yarn

    简介 一 YARN是一个通用资源管理系统和调度平台 为集群在利用率 资源统一管理和数据共享等方面带来了巨大好处 1 通用指不仅支持mr程序 也支持其它计算程序 2 资源管理包括集群的硬件资源 cpu 内存等 3 调度平台指多个程序同时执行时
  • 反向题在测试问卷信效度_九种方法筛选无效问卷及对研究设计的启示

    引言 随着网络及智能手机的普及 传统的一些纸笔测验渐渐被网络问卷所替代 网络问卷由于其便捷性 很大程度上方便了研究者和被试 2018年JOM一篇文章发现越来越多的研究者开始使用网络问卷收集数据 相关发表的文章也呈现逐年增加的趋势 参见Por
  • Linux——进程优先级

    1 什么是优先级 优先级和权限息息相关 权限的含义为能还是不能做这件事 而优先级则表示 你有权限去做 只不过是先去做还是后去做这件事罢了 2 为什么会存在优先级 优先级表明了狼多肉少的理念 举个例子 在日常生活中我们进行排队看医生 队列就是
  • CSDN如何转载别人的文章(快速转载)

    1 找到要转载的文章 用chrome浏览器打开 右键选择检查 2 在chrome中下方的框里找到对应的内容 html脚本中找到对应的节点 article content 选中节点 网页上被选中内容会被高亮显示 然后右键菜单选中 Copy g
  • gcc -l参数和-L参数

    l参数和 L参数 l参数就是用来指定程序要链接的库 l参数紧接着就是库名 那么库名跟真正的库文件名有什么关系呢 就拿数学库来说 他的库名是m 他的库文件名是libm so 很容易看出 把库文件名的头lib和尾 so去掉就是库名了 好了现在我
  • 查询引擎中的代码生成技术

    目录 一 背景 二 相关知识 2 1 Java虚拟机规范 2 1 1 数据类型 2 1 2 字节码指令 2 1 3 class文件格式 2 2 虚函数与CPU预测 2 3 查询引擎 火山模型 三 代码生成工具 3 1 动态编译器Janino
  • upload-labs初学者通关详解

    Pass 1 js验证绕过 首先在开始之前我们需要在我们导入的upload labs文件里面新建一个文件夹 方便我们上传php文件 打开第一关我们可以看见这个页面 我们将事先准好好的一句话木马文件传上去 可以看到提示 文件夹格式不正确 这时
  • 开放平台 文档

    QQ http wiki opensns qq com wiki E3 80 90QQ E7 99 BB E5 BD 95 E3 80 91add share
  • 朴素贝叶斯Naive Bayes-机器学习ML

    参考 1 统计学习方法 李航 2 先验概率与后验概率的区别 http blog csdn net ouyang linux007 article details 7566339 3 朴素贝叶斯方法 Naive Bayes 原理和实现 htt
  • hydra详细介绍及渗透利用大全(超细)

    hydra小白渗透路上必须掌握的工具 历史我就不介绍了百度上更详细 本内容仅供参考 切勿做违法犯罪 若出事一切与本人无关 请大家遵守网络安全法 祝大家早日成为安全界的大佬 Hydra 参数介绍 R 根据上一次进度继续破解 S 使用SSL协议
  • Spark 写入ElasticSearch报错类型整理

    1 Cannot determine write shards for authorRecommender Author likely its format is incorrect maybe it contains illegal ch
  • MyBatis核心配置文件详解、配置标签解析及SqlSession工厂对象

    一 MyBatis核心配置文件概述 1 MyBatis核心配置文件层级关系 2 MyBatis常用配置解析 1 environments标签 数据库环境的配置 支持多环境配置 其中 事务管理器 transactionManager 类型有两
  • CentOS虚拟机搭建

    下载centos的镜像 https www virtualbox org wiki Downloads 创建虚拟机内部虚拟网络 virtual box菜单 管理 gt 主机网络管理器 gt 创建 手动配置网卡并将ip地址设为192 168
  • 流批一体技术框架探索及在袋鼠云数栈中的实践

    一 关于流批一体数据仓库 流批一体是一种架构思想 这种思想说的是同一个业务 使用同一个sql逻辑 在既可以满足流处理计算同时也可以满足批处理任务的计算 从效率层面来说 批处理只能以t 1的形式呈现业务数据 流处理只能以t 0的形式呈现业务数
  • C# System.ArgumentNullException:“值不能为 null。Arg_ParamName_Name”

    弹窗显示异常报错如下所示 问题根因 添加tab顺序 修改图中的tab顺序 修改为
  • 全民农场服务器维护,全民农场1月22日更新了什么_全民农场1月22日更新维护内容介绍_游戏堡...

    全民农场今日更新之后将上线非常多精彩的活动内容 下面小编就为大家介绍一下全民农场1月22日更新维护内容 全民农场 将于1月22日12 00 18 30不停机更新 快来看看新的农场消息 1 全新惊喜一周活动开启 1月22日更新后 1月28日
  • HTTP抓包利器Fiddler基础及进阶教程(二)---- 手机端抓包+强制全局代理

    本文将进一步介绍Fiddler在移动端抓包的方法 一 配置Fiddler 二 查看当前IP 方式有很多种 选择运行 输入 cmd 在输入Ipconfig 三 验证是否配置成功 将上一步拿到的 IP Fiddler端口号 组成的链接用浏览器打
  • 读书笔记(2018年3月)-《卓有成效的管理者》总结

    1 善用时间 有效的管理者知道他们的时间用在什么地方 他们所能控制的时间非常有限 他们会有系统地工作 来善用这有限的时间 1 记录时间 记录时间耗用的实际情形 2 诊断时间 做有系统的时间管理 首先要找出什么事根本不必做 这些事做了也完全浪
  • Windows Server 2016抓取明文密码

    临时禁止Windows Defender REG ADD HKEY LOCAL MACHINE SOFTWARE Policies Microsoft Windows Defender v DisableAntiSpyware t REG
  • 原 QNetworkAccessManager实现curl上传表单文件

    心酸的过程我就不说了 直接上菜 如何用Qt实现 curl F file task plist http www fatjb com uploadfile QFile file m sTaskPlistPath if file exists