可以在libcurl中将多部分的帖子字段作为数组发送吗?

时间:2015-02-02 04:37:16

标签: c++ curl libcurl

我可以使用CURLOPT_POSTFIELDS设置帖子体,如'a [] = 1& a [] = 2& a [] = 3'。

当我尝试使用curl_formadd填充Multipart参数时,它总是返回CURL_FORMADD_OPTION_TWICE,我看到有一个选项CURLFORM_ARRAY,但似乎是选项,而不是多值字段。

使用curl API有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

curl_formadd是使用libcurl执行multipart formposts的(有用)方法。您可以也只是创建自己的缓冲区并将其作为普通帖子发送,但这需要您自己格式化所有内容,我不建议这样做。

如果你有curl_formadd的问题,你可能最好做一个尽可能小的测试并询问有关帮助。使用curl网站上的示例有curl_formadd。

答案 1 :(得分:0)

谢谢Daniel Stenberg纠正我的错。

使用curl_formadd

发布数组很容易
struct curl_httppost *formpost = NULL;
struct curl_httppost *lastptr = NULL;
char* buffer = "part body";
int len = strlen(buffer);
curl_formadd(&formpost,
           &lastptr,
           CURLFORM_COPYNAME, "name[]",
           CURLFORM_BUFFER, "buffer",
           CURLFORM_BUFFERPTR, buffer,
           CURLFORM_BUFFERLENGTH, len,
           CURLFORM_END);
curl_formadd(&formpost,
           &lastptr,
           CURLFORM_COPYNAME, "name[]",
           CURLFORM_BUFFER, "buffer",
           CURLFORM_BUFFERPTR, buffer,
           CURLFORM_BUFFERLENGTH, len,
           CURLFORM_END);