#include <stdio.h>
#include <curl/curl.h>
int main (void)
{
char *url="http://www.nengyouyun.cn/user/getAppversionnew2?apptype=H5C899DDC";
//char *url="http://127.0.0.1:8080"; //Liuzhenbo
//char *url="http://www.baidu.com"; //Liuzhenbo
//char *url="localhost"; CURL *pCurl = NULL;
CURLcode res; struct curl_slist *headerlist = NULL; struct curl_httppost *post = NULL;
struct curl_httppost *last = NULL;
//-----------------------------------------------------------------------//picture1
curl_formadd(&post, &last,CURLFORM_COPYNAME, "picture1", //此处表示要传的参数名
CURLFORM_FILE, "1.jpg", //此处表示图片文件的路径
//CURLFORM_CONTENTTYPE, "image/jpeg",
CURLFORM_END);
//------------------------------------------------------------------------//picture2
curl_formadd(&post, &last,
CURLFORM_COPYNAME, "picture2", //此处表示要传的参数名
CURLFORM_FILE, "2.jpg", //此处表示图片文件的路径
CURLFORM_END);
//----------------------------------------------------------------------------//json
curl_formadd(&post, &last,
CURLFORM_COPYNAME, "text1", //此处为别的参数
CURLFORM_COPYCONTENTS, "1.json", //要上传的json字符串
CURLFORM_END);
//------------------------------------------------------------------------------
pCurl = curl_easy_init(); //初始化句柄 -liuzhenbo if (NULL != pCurl)
{
//curl_easy_setopt(pCurl, CURLOPT_TIMEOUT, 5);
curl_easy_setopt(pCurl, CURLOPT_URL, url);
curl_easy_setopt(pCurl, CURLOPT_HTTPPOST, post); res = curl_easy_perform(pCurl);
// printf("\nres is OK!--liuzhenbo\n"); //-liuzhenbo
if (res != CURLE_OK)
{
printf("\nres is not ok!--liuzhenbo\n"); //-liuzhenbo
printf("curl_easy_perform() failed,error code is:%s\n", curl_easy_strerror(res));
}
printf("\n"); curl_easy_cleanup(pCurl); }
}

服务器返回的http主体:

lzb@lzb:~/projects/curls/http_post$ ./liu_post
{"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. jquery实现常用UI布局

    tab html <div class="tab"> <ul class="tab-title"> <li class=" ...

  2. 2.13 ViewModel 使数据即使在后台被杀死数据也能存活

    操作程序如下: 主要是创建一个 SavedStateHandle 来缓存上一次的数据,并通过重新读取上一次存储的数据来实现数据的存活 MyVIewModel: package com.example. ...

  3. jQuery原理系列-css选择器实现

    jQuery最强大的功能在于它可以通过css选择器查找元素,它的源码中有一半是sizzle css选择器引擎的代码,在html5规范出来之后,增加了document.querySelector和doc ...

  4. h5页面列表滚动加载数据

    h5列表滚动加载数据很常见,以下分享下今天做的案例: 前言 这个效果实现需要知道三个参数 1. scrollTop -- 滚动条距离顶部的高度 2. scrollHeight -- 当前页面的总高度( ...

  5. jquery 版本冲突解决办法

    <!-- 引入1.6.4版的jq --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jq ...

  6. P1036 跟奥巴马一起编程

    转跳点:

  7. POJ 2031:Building a Space Station 最小生成树

    Building a Space Station Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 6083   Accepte ...

  8. HDU 5282:Senior's String

    Senior's String  Accepts: 30  Submissions: 286  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit ...

  9. ORACLE异库DBLink创建以及使用

    遇到一个问题,两张库数据需要同步,但是数据量很大,落地迁移时间成本太大,这个时候找到一种方法就是DBLink 使用场景说明: A转移数据到B,需要在B上面创建此DBLink,然后使用. 创建方法: - ...

  10. JAVAEE 和项目开发(第五课:服务器软件的介绍)

    Web服务器根据对javaEE支持的能力分为两大类 1,JavaEE服务器(应用服务器) 1) IBM公司 WebSphere 2) BEA公司 WebLogic 3) JBoss 公司 JBoss ...