使用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数据 的相关文章

  • jQuery:处理 getJSON() 中的错误?

    使用 jQuery 时如何处理 500 错误getJSON http api jquery com jQuery getJSON 有几个关于错误处理的问题getJSON and https stackoverflow com questio
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 将 `new Date ()` 存储在 JSON 对象中

    我有以下字段验证器对象 type date min new Date 我希望我可以存储new Date 作为 JSON 中的表达式 解析时会执行 保存时间戳 type date min new Date getTime 然后你再读一遍 va
  • 如何修复 facebook Fatal error: Uncaught CurlException 问题

    我不时从 Facebook 收到此错误 Fatal error Uncaught CurlException 28 connect timed out thrown in var www html xxx facebook src face
  • 将 JSON 文件读入 Spark 时出现 _corrupt_record 错误

    我有这个 JSON 文件 a 1 b 2 这是通过Python json dump方法获得的 现在 我想使用 pyspark 将此文件读入 Spark 中的 DataFrame 根据文档 我正在这样做 sc SparkContext sql
  • 如何从文本文件中检索多个 JSON 对象,其中对象*不*由分隔符分隔?

    我有数千个包含多个 JSON 对象的文本文件 但不幸的是这些对象之间没有分隔符 这些对象存储为字典 其中一些字段本身就是对象 每个对象可能具有可变数量的嵌套对象 具体来说 一个对象可能如下所示 field1 field2 some valu
  • 点击 Java Web 服务:curl 或 URLConnection

    我使用的 Java 服务器在以下 URL 上公开 RESTful API http localhost 8080 my server 文档建议使用curl用于提交简单的PUT请求 文件上传 并强烈建议用户使用与示例中提供的完全相同的参数 所
  • MySQL 8 用逗号分割字符串并将其转换为JSON ARRAY

    我有以下字符串 a b c d 我想将它转换成一个 json 数组 像这样 a b c d MySQL 8 有什么函数可以实现这个功能吗 Try SELECT CAST CONCAT REPLACE a b c d AS JSON See
  • Android - 下载 JSON 数据并保存到共享首选项

    我正在从 PHP 服务读取 JSON 数据 每当该 JSON 的版本发生变化时 我想将其存储在 Android 上 用新数据替换旧数据 JSON 仅用于填充 Spinner 我的问题是 JSON 有 36KB 可以将其存储在共享首选项中有一
  • 如何阅读网站内容?

    我是使用 python 2 7 的网络爬虫的新手 一 背景 现在 我想收集有用的数据AQICN org http aqicn org city shenyang usconsulate 这是一个很棒的网站 提供世界各地的空气质量数据 我想用
  • Twitter api 文本字段值被截断

    为什么文本字段值被截断以及如何获得完整的值 截至目前 我正在尝试获取如下所示的文本字段值 do if let responseObject try NSJSONSerialization JSONObjectWithData respons
  • 双向链表转 JSON

    我有一个三维结构 实际上是一个具有六个节点的双向链表 即左 右 上 下 进 出 如果一个节点位于另一个节点的右侧 那么该节点将毫无疑问位于第一个节点的左侧 喜欢 实际上这是一个 3D 结构 但为了便于理解 我给出了一个 2D 示例 现在我必
  • 将 JSON 数据导入 Google 表格

    我从 Web 服务中提取数据 其格式为 JSON 我正在为 Google Sheets 编写一个 Google Apps 脚本 它将为我填充数据 我的问题是 我似乎无法解析它 Doing var dataset myJSONtext Bro
  • 如何在 Django REST Framework 中序列化“对象列表”

    我需要一个序列化器来完成这样的事情 items 12 name item 1 66 name item 2 我应该如何声明我的序列化器才能得到这样的东西 这是否是一个有效的 JSON 还是应该如下所示 items name item 1 i
  • 从响应中获取标头(Retrofit / OkHttp 客户端)

    我正在使用 Retrofit 与 OkHttp 客户端和 Jackson 进行 Json 序列化 并希望获取响应的标头 我知道我可以扩展 OkClient 并拦截它 但这发生在反序列化过程开始之前 我基本上需要的是获取标头以及反序列化的 J
  • R:将 JSON 时间格式转换为 POSIX

    我有一个 JSON 字符串 并将其放入数据框中 我能够做到这一点 但我在使用 apply 函数之一将所有时间字符串转换为 POSIX 格式时遇到问题 See here https stackoverflow com questions 90
  • 在 Play2 和 Scala 中解析没有数据类型的 JSON

    people name Jack age 15 name Tony age 23 name Mike age 19 这是我试图解析的 json 示例 我希望能够对每个人进行 foreach 操作并打印他们的姓名和年龄 我知道当 json 数
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有

随机推荐

  • 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