首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C/C libcurl如何发布表单提交,只是普通的web表单提交数据

C/C libcurl如何发布表单提交,只是普通的web表单提交数据
EN

Stack Overflow用户
提问于 2020-03-11 12:43:49
回答 2查看 34关注 0票数 1

我想模拟web表单提交到PHP API,但失败了,我尝试了很多方法。我的代码

代码语言:javascript
运行
复制
#define HADES "Content-Type:application/x-www-form-urlencoded;charset=utf-8"

int SendPacket(char *packet, const char *server)
{
    curl_global_init(CURL_GLOBAL_ALL);
    CURL *curl = curl_easy_init();
    if (!curl) {
        return -1;
    }
    CURLcode ret;
    struct curl_slist *haderlist = NULL;
    struct curl_httppost *post = NULL;
    struct curl_httppost *last = NULL;
    haderlist = curl_slist_append(haderlist, HADES);

    curl_formadd(&post, &last, CURLFORM_COPYNAME, "username",
             CURLFORM_COPYCONTENTS,
             "11111111111", CURLFORM_END);
    curl_formadd(&post, &last, CURLFORM_COPYNAME, "password",
             CURLFORM_COPYCONTENTS,
             "111111", CURLFORM_END);
    curl_formadd(&post, &last, CURLFORM_COPYNAME, "client", CURLFORM_FILE,
             "wap", CURLFORM_END);


    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, haderlist);
    curl_easy_setopt(curl, CURLOPT_URL, server);
    curl_easy_setopt(curl, CURLOPT_POST, 1);
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, post); 
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);

    //SendData
    ret = curl_easy_perform(curl);
    if (ret != CURLE_OK ) {
        curl_easy_strerror(ret);

        return -1;
    }
    return 0;
}

我将post的参数更改为这种格式,可以像这样正常发送: username = 11111 & password = 1111 & client = wap,而不是使用form_add函数,但我不知道怎么做。

如何纠正这个问题?我没有头绪

EN

Stack Overflow用户

发布于 2020-03-13 09:47:08

您正在混合表单编码。CURLOPT_POSTFIELDS需要URL编码的表单(例如username = 11111&password =1111&client=wap),而curl_formadd生成的是multipart/form-data编码的表单。可以对curl_formadd使用CURLOPT_HTTPPOST,也可以在url编码的表单上使用CURLOPT_POSTFIELDS

在这两种情况下,您都不需要添加Content-Type标头,因为它会自动添加。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60629382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档