使用libcurl提交表单信息

1、登录禅道

测试地址:http://192.168.2.7:7600/zentao

  CURL* easy_handle;
    CURLcode res;
    FILE* fptr;
    curl_slist* http_header = nullptr;

    if ((fptr = fopen(FILENAME, "w+")) == NULL) {
        fprintf(stderr, "fopen file error: %s\n", FILENAME);
        return -1;
    }
    CURLcode code;
    code = curl_global_init(CURL_GLOBAL_ALL);

    if (CURLE_OK != code)
    {
        std::cerr << "init libcurl failed." << std::endl;
        return -1;
    }
    
    std::string strPostFields = "account=username&password=thisispasswordxxxxx&referer=http%3A%2F%2F192.168.2.7%3A7600%2Fzentao%2Fmy%2F";

    easy_handle = curl_easy_init();
    curl_easy_setopt(easy_handle, CURLOPT_URL, "http://192.168.2.7:7600/zentao");
    curl_easy_setopt(easy_handle, CURLOPT_POSTFIELDS, strPostFields.c_str());
    curl_easy_setopt(easy_handle, CURLOPT_WRITEFUNCTION, func);   //回调函数,用于保存接收到的数据
    curl_easy_setopt(easy_handle, CURLOPT_WRITEDATA, fptr);
    curl_easy_setopt(easy_handle, CURLOPT_POST, 1);
    curl_easy_setopt(easy_handle, CURLOPT_VERBOSE, 1);  
    curl_easy_setopt(easy_handle, CURLOPT_HEADER, 1); 
    res = curl_easy_perform(easy_handle);
    
    curl_easy_cleanup(easy_handle);
    fclose(fptr);
    curl_global_cleanup();
    return res==CURLE_OK;

2、上传图片测试

测试地址:http://thyrsi.com/upload.php

请求头
提交的数据
返回的数据
    CURL* easy_handle;
    CURLcode res;
    FILE* fptr;
    curl_slist* http_headers = nullptr;

    if ((fptr = fopen(FILENAME, "w+")) == NULL) {
        fprintf(stderr, "fopen file error: %s\n", FILENAME);
        return -1;
    }
    CURLcode code;
    code = curl_global_init(CURL_GLOBAL_ALL);

    if (CURLE_OK != code)
    {
        std::cerr << "init libcurl failed." << std::endl;
        return -1;
    }

    curl_httppost *formpost = NULL;
    curl_httppost *lastptr = NULL;

    curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "MAX_FILE_SIZE", CURLFORM_COPYCONTENTS, "200000000", CURLFORM_END);
    curl_formadd(&formpost, &lastptr, 
        CURLFORM_COPYNAME, "uploadimg", 
        CURLFORM_FILE, "C:\\Users\\36240\\Desktop\\timg.jpg",
        CURLFORM_CONTENTTYPE,"image/jpeg", 
        CURLFORM_END);

    easy_handle = curl_easy_init();
    curl_easy_setopt(easy_handle, CURLOPT_URL, "http://thyrsi.com/upload.php");
    curl_easy_setopt(easy_handle, CURLOPT_WRITEFUNCTION, write_data);   //回调函数,用于保存接收到的数据
    curl_easy_setopt(easy_handle, CURLOPT_WRITEDATA, fptr);
    curl_easy_setopt(easy_handle, CURLOPT_POST, 1);
    curl_easy_setopt(easy_handle, CURLOPT_VERBOSE, 1);   
    curl_easy_setopt(easy_handle, CURLOPT_HEADER, 1);  
    curl_easy_setopt(easy_handle, CURLOPT_HTTPPOST, formpost);

    res = curl_easy_perform(easy_handle);
    curl_slist_free_all(http_headers);
    curl_formfree(formpost);
    curl_easy_cleanup(easy_handle);
    fclose(fptr);
    curl_global_cleanup();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前几天儿子回了老家,我与老公回归慵懒自由的二人世界,手牵手出去觅食,重温曾经约会吃饭的餐厅,回家的路上,我突然对老...
    Angie_我所理解的生活阅读 2,356评论 11 26
  • 要杯美式吧。 我冲杯单品给你好了,还按美式的价格算。 他递给我一杯澄澈透亮的手冲咖啡,有着甘醇而丰富的酸度,仍然像...
    三更白昼阅读 978评论 0 2
  • 对不起,我不想谈恋爱 文/艾草青团 第一批90后已经尝到了生活的艰辛。有些人已经结婚生子,陷在一地鸡毛里出不来;有...
    莲蓉馅的艾草青团阅读 285评论 0 0
  • 工作并不很忙,带娃也不是非常累。 可是却感觉自己像一个陀螺。 我问自己 你在做什么? 真的重要吗? 这是不是你一直...
    冲绳的风阅读 173评论 0 0
  • 两个单纯的目的 /翻翻有趣的读物 /从零基小白开始画下去 毕业季前途茫茫 二零一七一波三折 放宽心大胆往前走吧
    TrembleLala阅读 211评论 0 0

友情链接更多精彩内容