c++ 通过 libcurl库以Post方式向HTTP服务器提交数据

原文链接:

点击打开链接

一、上传数据

如题:

char name[] = "jgood";

char address[] = "Hangzhou";

上传这两个数据到http://localhost:2210/Default.aspx    该怎么办?


直接上代码:

int main()

{

    CURLcode code;
    code = curl_global_init(CURL_GLOBAL_ALL );    //初始化libcurl库,想用libcurl库的函数就必须首先初始化libcurl

    if(CURLE_OK != return_code)

    {

        cerr << "init libcurl failed." << endl;

        return -1;

    }

   

    CURL *easy_handle = curl_easy_init();    //初始化easy interface,想使用easy interface的api函数就必须首先初始化easy interface

   

    /* curl_easy_setopt函数设置属性和操作 */

    curl_easy_setopt(easy_handle, CURLOPT_URL, http://localhost:2210/Default.aspx);    //这里是设置url就是你想要上传的服务器

    curl_easy_setopt(easy_handle, CURLOPT_POSTFIELDS, "name=jgood&address=hangzhou");    //这里就是想要上传的数据,数据之间用&隔开

   

    curl_easy_perform(easy_handle);    //连接到远程主机,发送请求,并接收响应
   

    curl_easy_cleanup(easy_handle);    //释放资源
     curl_global_cleanup();    //释放资源
   

    return 0;

}


二、上传表单

如题:

char name[] = "jgood";

char address[] = "Hangzhou";

char filepath[] = "/filename.jpg";

上传这两个数据和这个文件到http://localhost:2210/Default.aspx    该怎么办?


直接上代码:

int main()

{

    CURLcode code;
    code = curl_global_init(CURL_GLOBAL_ALL );    //初始化libcurl库,想用libcurl库的函数就必须首先初始化libcurl

    if(CURLE_OK != return_code)

    {

        cerr << "init libcurl failed." << endl;

        return -1;

    }

   

    CURL *easy_handle = curl_easy_init();    //初始化easy interface,想使用easy interface的api函数就必须首先初始化easy interface

   

    curl_easy_setopt(easy_handle, CURLOPT_URL, http://localhost:2210/Default.aspx);    //设置easy handle的属性和操作


    curl_httppost *post = NULL;

    curl_httppost *last = NULL;

   

    /* 添加表单,按照服务器给的接口中变量顺序进行添加 */

    curl_formadd(&post, &last, CURLFORM_COPYNAME, "name", CURLFORM_COPYCONTENTS, "JGood", CURLFORM_END);

    curl_formadd(&post, &last, CURLFORM_COPYNAME, "address", CURLFORM_COPYCONTENTS, "HangZhou", CURLFORM_END);

    curl_formadd(&post, &last, CURLFORM_COPYNAME, "file", CURLFORM_FILE, filepath, CURLFORM_CONTENTTYPE, "application/x-jpg", CURLFORM_END);     //application/x-jpg是jpg文件的类型,具体要根据自己上传的文件类型进行设置,参考http://tools.jb51.net/table/http_content_type

    curl_easy_perform(easy_handle);    //连接到远程主机,发送请求,并接收响应
   

    curl_easy_cleanup(easy_handle);    //释放资源
    curl_global_cleanup();    //释放资源


    return 0;

}


  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值