使用curl库,以post方式向服务器发送json数据

2023-05-16

//使用curl库,以post方式向服务器发送json数据
//json数据的组合可以参考jsoncpp库,也可以按json格式自己组合字符串

//注意事项,以下代码不可以多线程执行,如果多线程执行,需要加锁进行控制,否则会运行崩溃

 

#include <curl/curl.h>
#include <string>
#include <exception>

int main(int argc, char *argv[]) 
{
	char szJsonData[1024];
	memset(szJsonData, 0, sizeof(szJsonData));
	std::string strJson = "{";
	strJson += "\"user_name\" : \"test\",";
	strJson += "\"password\" : \"test123\"";
	strJson += "}";
	strcpy(szJsonData, strJson.c_str());
	try 
	{
		CURL *pCurl = NULL;
		CURLcode res;
		// In windows, this will init the winsock stuff
		curl_global_init(CURL_GLOBAL_ALL);

		// get a curl handle
		pCurl = curl_easy_init();
		if (NULL != pCurl) 
		{
			// 设置超时时间为1秒
			curl_easy_setopt(pCurl, CURLOPT_TIMEOUT, 1);

			// First set the URL that is about to receive our POST. 
			// This URL can just as well be a 
			// https:// URL if that is what should receive the data.
			curl_easy_setopt(pCurl, CURLOPT_URL, "http://192.168.0.2/posttest.svc");
			//curl_easy_setopt(pCurl, CURLOPT_URL, "http://192.168.0.2/posttest.cgi");

			// 设置http发送的内容类型为JSON
			curl_slist *plist = curl_slist_append(NULL, 
				"Content-Type:application/json;charset=UTF-8");
			curl_easy_setopt(pCurl, CURLOPT_HTTPHEADER, plist);

			// 设置要POST的JSON数据
			curl_easy_setopt(pCurl, CURLOPT_POSTFIELDS, szJsonData);

			// Perform the request, res will get the return code 
			res = curl_easy_perform(pCurl);
			// Check for errors
			if (res != CURLE_OK) 
			{
				printf("curl_easy_perform() failed:%s\n", curl_easy_strerror(res));
			}
			// always cleanup
			curl_easy_cleanup(pCurl);
		}
		curl_global_cleanup();
	}
	catch (std::exception &ex)
	{
		printf("curl exception %s.\n", ex.what());
	}
	return 0;
}

 

参考文档curl压缩包\docs\examples\http-post.c

curl压缩包下载地址:http://curl.haxx.se/download.html


 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用curl库,以post方式向服务器发送json数据 的相关文章

  • 如何使用 Jackson 将日期编组为时间戳

    我在将 java util Date 对象编组 取消 到时间戳中时遇到问题 理想情况下 时间戳应采用 UTC 0 格式 而不是服务器的本地时区 尽管如果需要的话我可以很容易地解决这个问题 注意 我知道这里有几个关于堆栈溢出的类似主题 但我遇
  • Android Volley 服务器错误

    I am posting data all strings to varchar variables in server but i am getting volley server error or badnetwork performa
  • PHP json_encode 反斜杠和数组名称的问题

    我正在将一些 postgresql 数据转换为 PHP json encode 但我遇到了一些问题 json encode 将 BackSlash 添加到我的数据中的所有斜杠中 在描述中出现段落标记的结束 我认为是因为反斜杠问题 我不希望我
  • 在 jQuery 中获取 Json 数据

    没有一个清晰的示例解释如何尽可能简单地拉取 json 数据 我有一个有效的 json 我需要使用 jQuery 检索它 我的 json 输出如下 title blog entries items title Can Members of t
  • toJSON() 和 JSON.Stringify() 之间的区别

    如果您需要读取或克隆模型的所有数据属性 请使用其 toJSON 方法 此方法返回属性的副本作为 对象 尽管有其名称 但不是 JSON 字符串 当 JSON stringify 为 使用 toJSON 方法传递一个对象 它将返回的字符串化 t
  • Javascript“命名空间”和 jQuery AJAX

    我正在使用此处列出的建议 http www odetocode com articles 473 aspx http www odetocode com articles 473 aspx 使用模拟的JavaScript AJAX网络聊天系
  • 如何使用 *non-case* 类通过 Scala 从 JSON 反序列化?

    我正在编写一个 Scala 应用程序 需要序列化和反序列化 JSON 某些 JSON 对象具有超过 22 个字段 因此我无法使用案例类 并且也无法更改格式 我找到的所有 Scala JSON 库都只能 轻松地 与案例类一起使用 而不是与普通
  • Facebook Graph API 使用 json 和 C# 检索好友

    我正在使用 C 和 Graph API 进行工作 并且能够获取 Facebook 用户个人资料信息 例如 ID 姓名和电子邮件 然后反序列化 JSON 以便能够将值分配给标签 然而 我的问题是 当我去获取好友列表或任何与此相关的列表时 如何
  • HTML 解析 - 从 div 内的表格获取数据?

    我对 HTML 解析 抓取的整个想法还比较陌生 我希望我能来这里获得我需要的帮助 基本上我想要做的 我认为 是指定我希望从中获取数据的页面的 url 在这种情况下 http www epgpweb com guild us Caelestr
  • 如何在 Objective C 中创建 json 字符串?

    我必须动态生成一个 json 字符串并需要发送到服务器 有谁知道如何使用NSJSONSerialization 下面是我的字符串 surveyid Survey1 responsetime dd mm yyyy hh mm ss locat
  • serde_json::from_str 错误,其中字符串来自文件

    extern crate serde json use serde json Value use std fs File use std io prelude fn main let filepath map test anhui txt
  • 无法执行目标 org.codehaus.mojo:exec-maven-plugin:1.5.0:exec

    三周前 我完成了一个网络应用程序的工作 一切都运行没有问题 现在 三周后 没有任何更改 我想再次运行该应用程序 但这次我收到以下错误消息 An error occurred while parsing the server response
  • 当我运行反应脚本“yarn start”时,我到index.html中的manifest.json的链接有效,但当我运行“python3 manage.py runserver”时则无效

    当我运行 yarn start 时 我的index html 文件中的manifest json 链接工作正常 但是当我运行时 python3 manage py runserver 我在终端得到的只是 Not Found manifest
  • 为数据集生成随机 JSON 结构排列

    我想生成 JSON 结构的许多不同排列作为同一数据集的表示 最好不需要对实现进行硬编码 例如 给定以下 JSON name smith occupation agent enemy humanity nemesis neo 应该产生许多不同
  • 如何在 JSONKit 中 JSON 序列化 NSDate 字典

    我尝试使用 Jsonkit 和 Apple 的 JSON 序列化器 但没有成功 它不断破坏 geo 属性 该属性是 NSNumbers 的 nsarray Post p Post alloc init p uname mike p like
  • Groovy - 将对象转换为 JSON 字符串

    我非常习惯 Grails 转换器 您可以将任何对象转换为 JSON 表示 就像这样 http grails org Converters Reference http grails org Converters Reference retu
  • api网关CORS设置

    我正在尝试在部署脚本中使用 aws cli 从命令行设置 aws CORS 我使用以下 perl to shell 命令创建了 POST 资源 我正在尝试将集成响应设置为 就像启用核心一样 aws apigateway put method
  • 与 Jackson 一起从 ASP.NET 反序列化日期

    我有一个 json 字符串 从 ASP NET Rest 服务返回 中的日期 如下所示 created Date 1277931782420 0700 杰克逊无法解析该日期 我可以编写自己的日期格式并将其传递给mapper getDeser
  • 使用 Ruby Curb 传递 GET 参数

    我正在尝试使用 Curb curb rubyforge org 调用需要在 get 请求中提供参数的 RESTful API 我想获取一个像这样的URLhttp foo com bar xml bla blablabla 我希望能够做类似的
  • 如何在 laravel 中查询 json 列?

    我用的是 Laravel 5 6 我有一块田地 字段的数据类型为json 字段 desc 字段 的值如下所示 code 1 club CHE country ENGLAND code 2 club BAY country GERMANY c

随机推荐

  • MT7688双摄像头双电机驱动小车(1)环境搭建

    设计目标 xff1a 实现一个带双摄像头 xff0c 可实现远程无线监控 xff0c 控制的小车 其他 xff1a 1 监控具体的作用还为定义 2 硬件需要设计为可拓展性 xff0c 方便后续增加功能 实现方案 xff1a 这里的方案主要指
  • 输入一个字符串,删除其中所有的数字,所有大写字母改成小写,其他不变,并输出

    span class hljs preprocessor include lt stdio h gt span span class hljs title int span main int i j int k char span clas
  • 输入一串字符串,其中有普通的字符与括号组成(包括‘(’、‘)’、‘[’,']'),要求验证括号是否匹配,如果匹配则输出0、否则输出1.

    span class hljs comment include lt stdio h gt span span class hljs keyword int span span class hljs keyword push span ch
  • C函数与汇编函数之间参数及返回值传递方法

    AAPCS对ARM结构的一些标准做了定义 xff0c 在这里我们只重点介绍函数调用部分 xff0c 如图8所示 xff0c AAPCS为ARM的R0 R15寄存器做了定义 xff0c 明确了它们在函数中的职责 xff1a 图 8 AAPCS
  • 软件看门狗和硬件看门狗

    看门狗 xff0c 又叫watchdog timer xff0c 从本质上来说就是一个定时器电路 xff0c 一般有一个输入和一个输出 xff0c 其中的输入叫做喂狗 xff0c 输出一般连接到另外一个部分的复位端 xff0c 另外一个部分
  • C语言中数组与指针偏移

    今天在单位被同事问到指针指向数组的问题 xff0c 回来敲代码总结一下 先给出代码如下 xff1a span class hljs comment include lt stdio h gt span span class hljs key
  • vtol的姿态控制部分vtol_att_control_main

    该部分实现VTOL机型的姿态控制部分 该部分接收来自固定翼以及旋翼的姿态控制部分的数据 xff0c 并对该数据进行数据 在数据处理时针对飞机的状态 xff1a 旋翼 FW还是切换状态分别进行处理 最后发布电机控制的topic 期望姿态top
  • 汇编文件 .s 和 .S 区别

    s 汇编语言源程序 操作 汇编 S汇编语言源程序 操作 预处理 43 汇编 1 小写的 s文件 xff0c 在后期阶段不会再进行预处理操作了 xff0c 所以我们不能在其内写上预处理语句 一般是 c 文件经过汇编器处理后的输出 如 GCC
  • sockaddr_in与sockaddr的区别,以及对网络字节序和主机字节序的理解和转换函数

    一 sockaddr sockaddr在 usr include bits socket h下 xff0c 查看sockaddr的结构 xff1a span class hljs title struct span sockaddr SOC
  • postman的经典操作实例

    今天我们就来说说postman这个工具的使用 xff0c 具体介绍几种经典的接口测试用例 首先打开postman这个工具 xff0c 点击新增页面 1 首先测试一个get请求的接口 xff0c 其实get请求直接在浏览器就可以测试 xff0
  • IP头中的校验和计算方法介绍

    校验和的作用 按照协议的规定 xff0c 报文到达每一层 xff0c 首先验证校验和是否正确 xff0c 丢弃掉不正确的报文 xff0c 再才会进行后续操作 那么校验和是怎么计算的呢 xff1f 校验和的计算方法 以 IP 首部中的校验和为
  • STM32循环队列串口通信(工程末尾自取)

    STM32循环队列串口通信 包含内容 xff1a 循环队列 环形队列 循环队列本质是先进先出的线性序列 xff0c 通过定义的头尾指针对一个数组或者一个合法的内存进行循环访问的方式存入和取出数据 xff0c 通过数组或者合法内存形成数据的缓
  • OAuth的学习

    1 OAuth介绍 OAUTH协议为用户资源的授权提供了一个安全的 开放而又简易的标准 与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信 息 xff08 如用户名与密码 xff09 xff0c 即第三方无需使用用户的
  • UART协议

    UART协议 简介 UART是通用异步收发传输器 xff08 Universal Asynchronous Receiver Transmitter xff0c 通常称作UART xff0c 是一种异步收发传输器 是设备间进行异步通信的关键
  • git标签和分支命令

    本编记录git标签和分支的基本命令 61 61 61 61 61 git 标签基本命令 查看总共有哪些标签 l参数用于过滤 xff0c 比如这里是查看以v开头的所有分支 git tag l v 创建一个临时标签 最简单的创建标签的方法 gi
  • C语言实验——计算1到n的和(循环结构)

    include lt stdio h gt int main int i n sum 61 0 scanf 34 d 34 amp n for i 61 1 i lt 61 n i 43 43 sum 61 sum 43 i printf
  • ubuntu18.04安装Realsense D435i 摄像头的驱动SDK和ROS Wrapper

    ubuntu18 04安装Realsense D435i 摄像头的驱动SDK和ROS Wrapper 2022年更新 xff1a 安装教程同 xff1b 进更新安装包下载方式和下载链接 见文末 1 安装Realsense SDK 1 下载s
  • Window内置ubuntu安装与图形界面显示

    文章目录 一 Window安装ubuntu1 打开控制面板2 WSL升级1 xff09 启用适用于 Linux 的 Windows 子系统2 xff09 检查运行 WSL 2 的要求3 xff09 启用虚拟机功能4 xff09 下载 Lin
  • vscode超实用插件-REST Client

    背景 xff1a 作为前端开发 xff0c 经常需要进行接口调试 xff0c 比如常用的postman Rest client则是vscode推出的一款直接在vscode编辑器内就可以进行接口调试的插件 可以帮助我们快速在编辑器中进行接口调
  • 使用curl库,以post方式向服务器发送json数据

    使用curl库 xff0c 以post方式向服务器发送json数据 json数据的组合可以参考jsoncpp库 xff0c 也可以按json格式自己组合字符串 注意事项 xff0c 以下代码不可以多线程执行 xff0c 如果多线程执行 xf