1. #include <stdio.h>
  2. #include <curl/curl.h>
  3. int main (void)
  4. {
  5. char *url="http://www.nengyouyun.cn/user/getAppversionnew2?apptype=H5C899DDC";
  6. //char *url="http://127.0.0.1:8080"; //Liuzhenbo
  7. //char *url="http://www.baidu.com"; //Liuzhenbo
  8. //char *url="localhost";
  9.  
  10. CURL *pCurl = NULL;
  11. CURLcode res;
  12.  
  13. struct curl_slist *headerlist = NULL;
  14.  
  15. struct curl_httppost *post = NULL;
  16. struct curl_httppost *last = NULL;
  17. //-----------------------------------------------------------------------//picture1
  18. curl_formadd(&post, &last,CURLFORM_COPYNAME, "picture1", //此处表示要传的参数名
  19. CURLFORM_FILE, "1.jpg", //此处表示图片文件的路径
  20. //CURLFORM_CONTENTTYPE, "image/jpeg",
  21. CURLFORM_END);
  22. //------------------------------------------------------------------------//picture2
  23. curl_formadd(&post, &last,
  24. CURLFORM_COPYNAME, "picture2", //此处表示要传的参数名
  25. CURLFORM_FILE, "2.jpg", //此处表示图片文件的路径
  26. CURLFORM_END);
  27. //----------------------------------------------------------------------------//json
  28. curl_formadd(&post, &last,
  29. CURLFORM_COPYNAME, "text1", //此处为别的参数
  30. CURLFORM_COPYCONTENTS, "1.json", //要上传的json字符串
  31. CURLFORM_END);
  32. //------------------------------------------------------------------------------
  33. pCurl = curl_easy_init(); //初始化句柄 -liuzhenbo
  34.  
  35. if (NULL != pCurl)
  36. {
  37. //curl_easy_setopt(pCurl, CURLOPT_TIMEOUT, 5);
  38. curl_easy_setopt(pCurl, CURLOPT_URL, url);
  39. curl_easy_setopt(pCurl, CURLOPT_HTTPPOST, post);
  40.  
  41. res = curl_easy_perform(pCurl);
  42. // printf("\nres is OK!--liuzhenbo\n"); //-liuzhenbo
  43. if (res != CURLE_OK)
  44. {
  45. printf("\nres is not ok!--liuzhenbo\n"); //-liuzhenbo
  46. printf("curl_easy_perform() failed,error code is:%s\n", curl_easy_strerror(res));
  47. }
  48. printf("\n");
  49.  
  50. curl_easy_cleanup(pCurl);
  51.  
  52. }
  53. }

服务器返回的http主体:

  1. lzb@lzb:~/projects/curls/http_post$ ./liu_post
  2. {"app":{"id":,"version":"1.73","upfile":"","apkfile":null,"apptype":{"id":"apptype-H5C899DDC","key":{"dicno":"apptype","datano":"H5C899DDC"},"name":"昱昌","sortnum":"","isuse":""},"descr":"修改APP地图界面客户数的统计"}}

基于libcurl的POST(http)的更多相关文章

  1. 基于libcurl实现REST风格http/https的get和post

    c/c++开发中经常要用到http/https协议,直接使用socket工作量很大,要是使用socket实现https,那更不可思议,开源的c/c++的http客户端框架,libcurl是首选,而且也 ...

  2. 基于libcurl的restfull接口 post posts get gets

    头文件 #pragma once #ifndef __HTTP_CURL_H__ #define __HTTP_CURL_H__ #include <string> #include &q ...

  3. 基于libcurl的GET与POST(HTTP1.1)

    #include <stdio.h> #include <curl/curl.h> bool getUrl(char *filename) { CURL *curl; CURL ...

  4. C++ 用libcurl库进行http通讯网络编程

    使用libcurl完成http通讯,很方便而且是线程安全,转载一篇比较好的入门文章 转载自 http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724 ...

  5. C++ 用libcurl库进行http通讯网络编程(转)

    转载:http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724318.html 目录索引: 一.LibCurl基本编程框架 二.一些基本的函数 三. ...

  6. 2.1 LibCurl编程流程(转)

    转载地址:http://blog.chinaunix.net/u/17660/showart_1822514.html2 LibCurl编程2.1 LibCurl编程流程在基于LibCurl的程序里, ...

  7. 基于Httpfs访问HDFS的C++实现

    Httpfs是hadoop2.x中hdfs项目的内置应用,基于tomcat和jesery,对外提供完备HDFS操作的RESTful接口,无需安装客户端,可方便实现数据交互,如从windows访问存储在 ...

  8. libcurl

    一.LibCurl基本编程框架 二.一些基本的函数 三.curl_easy_setopt函数部分选项介绍 四.curl_easy_perform 函数说明(error 状态码) 五.libcurl使用 ...

  9. libcurl编程学习

    一.curl简介 curl是一个利用URL语法在命令行方式下工作的文件传输工具.它支持的协议有:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以 ...

随机推荐

  1. 计算方法执行完的耗时 c#

    Stopwatch watch = Stopwatch.StartNew(); //要执行的方法 test(); watch.Stop(); Console.WriteLine(string.Form ...

  2. 打包APK出现org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:lintVitalRelease'.

    AndroidS Studio打包APK时出现问题:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':a ...

  3. centos7搭建kafka集群

    一.安装jdk 1.下载jdk压缩包并移动到/usr/local目录 mv jdk-8u162-linux-x64.tar.gz /usr/local 2.解压 tar -zxvf jdk-8u162 ...

  4. oracle问题:char类型数据查询不到

    select distinct id,name from test_table b where b.ID='001' ; id为char字段类型,使用该语句查询不出数据. 解决方法:加trim().改 ...

  5. CV_图像滤波[转]---python+opencv均值滤波,高斯滤波,中值滤波,双边滤波

    1.图像滤波算法(cv2) https://blog.csdn.net/qq_27261889/article/details/80822270 2.

  6. Nmap目录扫描和漏洞扫描(9.27 第十三天)

    目录扫描:扫描站点的目录,寻找敏感文件(目录名.探针文件.后台.robots.txt[].备份文件等) 目录:站点结构,权限控制不严格 探针文件:服务器配置信息,phpinfo.php   readm ...

  7. 51nod 算法马拉松3 A:序列分解

    序列分解 System Message (命题人) 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 小刀和大刀是双胞胎兄弟.今天他们玩一个有意思的游戏. 大刀给小刀准备了一个长度为n ...

  8. tensorflow-cnnn-mnist

    #coding=utf-8import tensorflow as tfimport numpy as npimport matplotlib .pyplot as pltfrom tensorflo ...

  9. Struts1 的配置文件总结

    一.在web.xml中安装Struts 要想使用Struts,我们接触到的第一个配置文件就是web.xml.实际上,Struts的入口点是一个名为ActionServlet的Servlet.在第一次访 ...

  10. java课程之团队开发冲刺阶段2.7

    昨日总结: 1.完整实现课前闹钟提醒功能 遇到的困难: 1.没有遇到大的问题,细节地方没有处理好出现了一下小的情况 今天的任务: 1.实现对课程查询的完整实现 当日总结: 1.以前是使用二级联动下拉框 ...