libcurl可变长度数据对象的多部分帖子

时间:2013-02-13 17:54:54

标签: c++ http post libcurl multipart

我很难与libcurl一起努力使其适应特定情况。我正在做的主要是将可变数量的对象加载到内存中,对它们执行各种转换,然后我想上传它们(当然是序列化的二进制数据)作为多部分帖子的一部分。

我正在努力的部分是我想在他们完成这个管道时将它们作为一个部分添加,然后在发布特定部分后删除它们。

我想过或许给它一个读取函数ptr,并且在回调上可能手动用缓冲区提供部分头文件和数据?这种方法似乎非常糟糕。

我尝试过常规的多部分方法(使用多手柄),但这似乎需要预先提供所有数据,或者从文件中读取数据。我不希望libcurl处理。

总结一下,我想打开一个连接,启动http多部分帖子请求 - >进入内存缓冲区 - >添加为post attatchment(multipart) - >发送 - 关闭>等待下一个数据块 - >重复完成。

先谢谢。

1 个答案:

答案 0 :(得分:0)

使用curl_formadd()函数准备multipart/form-data HTTP帖子,然后使用CURLOPT_HTTPPOST选项实际发送它。 curl_formadd()有一个CURLFORM_STREAM选项,可以使用连接的CURLOPT_READFUNCTION回调,因此您可以自定义流式传输每个多部分的数据。