一个非常优秀的跨平台物联网开发常用的网络请求库libcurl

简介: 一个非常优秀的跨平台物联网开发常用的网络请求库libcurl

由于接下来要更多的和物联网云平台打交道。我考虑的一种实现方式是将业务代码和网络解析处理代码分离的模式。因此,有必要学习以下这一个优秀的网络请求库-libcurl。

1、libcurl简介

libcurl 是一个免费且易于使用的客户端 URL 传输库, 支持DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET和TFTP。libcurl 支持 SSL 证书、HTTP POST、HTTP PUT、FTP 上传、基于 HTTP 表单的上传、代理、HTTP/3、Cookie、用户/密码认证 (Basic, Digest, NTLM, Negotiate, Kerberos), 文件传输恢复、http隧道代理等等!


libcurl兼容许多平台, 包括Solaris, NetBSD, FreeBSD, OpenBSD, Darwin, HPUX, IRIX, AIX, Tru64, Linux, UnixWare, HURD, Windows, Amiga, OS/2, BeOs, Mac OS X, Ultrix, QNX, OpenVMS, RISC OS, Novell NetWare, DOS 等等。


libcurl 是免费的、线程安全的、IPv6 兼容的、功能丰富的、支持良好的、快速的、完整的文档并且已经被许多知名的、大的和成功的公司使用。

2、libcurl的使用

2.1、下载最新版本的libcurl

下载链接如下:

https://curl.se/download.html

640.png

640.png

2.2、在Linux下进行配置、编译和安装

(1)配置libcurl


怎么配置的话可以执行帮助指令查看配置选项:

./configure --help

640.png

libcurl的配置参数非常丰富,我们也可以将它进行交叉编译,在开发板上进行使用,为了简单能够测试,我的配置参数如下:

./configure --with-openssl

640.png

配置完以后,我们可以看到这里面有哪些功能开启,哪些功能没有开启。

(2)编译 & 安装

make & make install

640.png

2.3、编写libcurl样例

在libcurl官网上提供了大量的案例,在编写程序的过程中可以进行借鉴:

https://curl.se/libcurl/c/example.html

640.png

以下是我根据案例编写的一个从云端下载文件的demo:

#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
#include <unistd.h>
#include "http-get.h"
int main(int argc, char *argv[])
{
 if(argc != 3)
 {
  printf("usage: Less than 3 parameters\n"); 
  printf("first parameters is url,second parameters is file name...\n");
  return -1 ;
 }
    int res = http_get_file(argv[1],argv[2]);
    if(res != 0)
 {
  printf("file donwload fair!\n");
  return -2 ;
 }
    return 0;
}

编译及执行方法:

gcc http_get.c -o http_get -lcurl

640.png

从URL下载得到的文件:

640.png

640.png

3、引用 & 参考文献

(N.d.). Retrieved from https://curl.se/libcurl/c/example.html
(N.d.). Retrieved from https://everything.curl.dev/libcurl
(N.d.). Retrieved from https://www.jianshu.com/p/c19a3f34b033

往期精彩

如何优雅地打印 HEX 数据?


让传感器数据更直观之LCD曲线显示


项目资源太紧张了,如何根据map信息进行功能裁剪和优化?


整理了很久之前在码云/Github/CSDN上收藏的嵌入式产品级项目分享开源

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
4天前
|
安全 物联网 数据处理
C 标准库 - <signal.h>在物联网中的应用
在物联网(IoT)应用中,`&lt;signal.h&gt;` 用于处理异步事件和信号,对设备的稳定性和可靠性至关重要。它支持多种应用场景,包括处理设备重启/关机信号(使用 `SIGINT` 或 `SIGTERM`)、管理定时任务(通过 `SIGALRM`)、实现进程间通信(利用 `SIGUSR1` 和 `SIGUSR2`)、应对异常情况(如 `SIGSEGV`),以及实时数据处理。通过合理使用信号,物联网设备能够更高效地管理进程生命周期,提升可靠性和实时性,确保在复杂环境中稳健运行。
|
8天前
|
传感器 安全 物联网
探索未来网络:物联网安全技术的新篇章
在本文中,我们将深入探讨物联网(IoT)的安全性问题,分析当前面临的挑战,并展望未来可能的技术发展方向。通过详细讨论各种安全技术和策略,旨在为读者提供对物联网安全性的全面理解,同时激发对未来技术创新的思考。
28 1
|
11天前
|
JavaScript 前端开发 API
网络请求库 – axios库
网络请求库 – axios库
|
1天前
|
传感器 存储 安全
C 标准库 - <stdlib.h>在物联网中的应用
在物联网(IoT)应用中,C 标准库 `&lt;stdlib.h&gt;` 提供了关键功能,尤其适用于资源受限的环境。它支持动态内存管理(如 `malloc` 和 `calloc`),便于处理传感器数据;字符串转换函数(如 `atoi`、`atof`)简化了网络数据解析;随机数生成(`rand`、`srand`)用于测试和安全;进程控制(`exit`、`system`)以及环境配置读取(`getenv`)等功能则增强了设备的灵活性和稳定性。通过高效利用这些工具,开发者能在嵌入式系统中实现更强大和可靠的 IoT 应用。
24 10
|
5天前
|
机器学习/深度学习 安全 物联网安全
探索未来网络:物联网安全的最佳实践与创新策略
本文旨在深入探讨物联网(IoT)的安全性问题,分析其面临的主要威胁与挑战,并提出一系列创新性的解决策略。通过技术解析、案例研究与前瞻展望,本文不仅揭示了物联网安全的复杂性,还展示了如何通过综合手段提升设备、数据及网络的安全性。我们强调了跨学科合作的重要性,以及在快速发展的技术环境中保持敏捷与适应性的必要性,为业界和研究者提供了宝贵的参考与启示。
|
3天前
|
存储 传感器 物联网
C 标准库 - <stddef.h>在物联网中的应用
在物联网(IoT)环境中,`&lt;stddef.h&gt;` 头文件提供了关键类型和宏,对于资源受限的设备而言尤为重要。
|
3天前
|
存储 安全 物联网
.NET 跨平台工业物联网网关解决方案
【9月更文挑战第28天】本文介绍了利用 .NET 构建跨平台工业物联网网关的解决方案。通过 .NET Core 和多种通信协议(如 MQTT 和 Modbus),实现工业设备的高效接入和数据采集。系统架构包括设备接入层、数据处理层、通信层、应用层和数据库层,确保数据的准确采集、实时处理和安全传输。此外,还详细阐述了设备身份认证、数据加密及安全审计等机制,确保系统的安全性。该方案适用于不同操作系统和工业环境,具备高度灵活性和扩展性。
|
12天前
|
传感器 人工智能 边缘计算
探索未来网络:物联网技术与应用
本文旨在探讨物联网(IoT)技术的定义、发展历程及其在各领域的应用。通过对现有文献的综合分析,本文揭示了物联网技术的多样性和其在现代科技发展中的关键作用。此外,本文还讨论了物联网面临的主要挑战及未来的发展方向,以期为相关领域的研究提供参考。
|
7天前
|
传感器 物联网 人机交互
物联网:物联网,作为新一代信息技术的重要组成部分,通过智能感知、识别技术与普适计算等通信感知技术,将各种信息传感设备与互联网结合起来而形成的一个巨大网络,实现了物物相连、人物相连,开启了万物互联的新时代。
在21世纪,物联网(IoT)作为新一代信息技术的核心,正以前所未有的速度重塑生活、工作和社会结构。本文首先介绍了物联网的概念及其在各领域的广泛应用,强调其技术融合性、广泛的应用范围以及数据驱动的特点。接着,详细阐述了物联网行业的现状和发展趋势,包括政策支持、关键技术突破和应用场景深化。此外,还探讨了物联网面临的挑战与机遇,并展望了其未来在技术创新和模式创新方面的潜力。物联网行业正以其独特魅力引领科技发展潮流,有望成为推动全球经济发展的新引擎。
|
8天前
|
存储 安全 物联网
探索未来网络:物联网安全的挑战与对策
本文深入探讨了物联网(IoT)技术的基本概念、发展现状以及面临的主要安全挑战,并提出了相应的解决策略。通过对当前物联网设备的安全漏洞和攻击手段的分析,文章强调了加强设备认证、数据加密和隐私保护等措施的重要性。同时,呼吁业界共同努力,制定统一的安全标准和规范,以促进物联网技术的健康发展。
下一篇
无影云桌面