c++发送消息格式为JSON的http请求
来源:互联网 发布:xy苹果手机助手mac版 编辑:程序博客网 时间:2024/05/21 13:07
JSON是类似于xml的一种用于信息交互的轻量级信息定义格式,可扩展性也很好。
如何用C++写的代码来发送http请求,消息格式采用JSON呢?
下面我一步一步介绍。所有步骤都经实际验证,测试平台为WIN7系统。
- 发送http请求需要安装curl库。vs2010下编译libcurl
- 需要构造和解析json格式的消息要用到jsoncpp库。vs2010下编译jsoncpp库
- 测试代码如下:
#include <stdio.h>#include <string.h>#include <curl/curl.h>#include <json/json.h>#define MAX_BUF 65536char wr_buf[MAX_BUF+1];int wr_index;size_t write_data( void *buffer, size_t size, size_t nmemb, void *userp ){ int segsize = size * nmemb; if ( wr_index + segsize > MAX_BUF ) { *(int *)userp = 1; return 0; } memcpy( (void *)&wr_buf[wr_index], buffer, (size_t)segsize ); wr_index += segsize; wr_buf[wr_index] = 0; return segsize;}int main( void ){ CURL *curl; CURLcode ret; int wr_error; wr_error = 0; wr_index = 0; curl = curl_easy_init(); if (!curl) { printf("couldn't init curl "); return 0; } //指定url curl_easy_setopt( curl, CURLOPT_URL, "https://api.weibo.com/2/statuses/public_timeline.json" ); //准备构造json格式消息 Json::Value value; value["id"]=Json::Value(5345); Json::Reader reader; std::string strResult = value.toStyledString(); Json::Value result; //测试构造字符串内容 if (reader.parse(strResult,result)) { if(!result["id"].isNull()) { //std::cout<<result["id"].asInt()<<std::endl; } } std::cout<<value.toStyledString().c_str()<<std::endl; //设置http请求json格式参数 curl_easy_setopt(curl, CURLOPT_POSTFIELDS, value.toStyledString().c_str()); curl_easy_setopt( curl, CURLOPT_WRITEDATA, (void *)&wr_error ); curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION, write_data ); ret = curl_easy_perform( curl ); printf( "ret = %d (write_error = %d) ", ret, wr_error ); if ( ret == 0 ) printf( "%s ", wr_buf ); curl_easy_cleanup( curl ); return 0;}
0 0
- C++发送消息格式为JSON的http请求
- C++发送消息格式为JSON的http请求
- c++发送消息格式为JSON的http请求
- RestTemplate 发送json格式的http请求
- java发送JSON格式的http通讯的post请求
- Python发送http请求(json格式)
- python 发送HTTP请求 post json 格式
- Json格式的http请求
- http+json发送请求
- postman发送json格式的post请求
- JAVA HTTP POST请求(请求参数格式为json)
- HTTP请求消息格式
- HTTP请求消息格式
- http发送json格式数据请求 demo示例
- json格式请求http
- java 发送 json、xml格式的 http请求,并读取响应response内容实例
- ExtJS发送POST请求 参数格式为JSON
- Java发送HTTP POST请求(内容为xml格式)
- PHP基础教程十四之使用MySqli操作数据库
- Spring Data+Hibernate+JTA 中pom.xml的配置
- HDU 5878 -- 丑数打表(2016 ACM/ICPC Asia Regional Qingdao Online)
- Session中的对象注意要序列化
- datagrid判断数据是否可以合并并合并单元格
- c++发送消息格式为JSON的http请求
- C#学习笔记01——SqlBulkCopy
- PAT(A) - 1018. Public Bike Management (30)
- ubuntu下使用github安装R Packages[已解决]
- ws_download 和 gui_download参数codepage解析
- 神经网络(c++)【转】
- 二分查找实用模板
- Calendar 日历类
- navgationBar按钮颜色