Qt libcurl的下載、配置及簡單測試 (windows環境)

Qt libcurl的下載、配置及簡單測試

  • 引言
  • 一、libcurl下載
  • 二、在Qt Creator中配置
  • 三、簡單測試

引言

curl(Client URL)是一個開源的命令行工具和庫,用于傳輸數據支持多種協議(如HTTP、HTTPS、FTP、SFTP等)。其核心庫libcurl提供了跨平臺的API,允許開發者通過代碼實現網絡通信功能。

一、libcurl下載

官方下載地址:https://curl.se/download.html

    1. 找到適合自己的版本 (我的是Windows 64),下載帶有devel標識的。Linux找不到對應版本可下載源碼編譯.
      在這里插入圖片描述
    1. 彈出如下界面選擇第一個,下載的文件為:curl-8.15.0_4-win64-mingw.zip
      在這里插入圖片描述

二、在Qt Creator中配置

    1. 新建項目,將壓縮包里的includelib文件夾拷貝到.pro同目錄,然后在.pro文件中增加如下語句:
LIBS += -L$$PWD/lib
LIBS += -lcurl
    1. cpp可直接引用#include "include/curl/curl.h"
    1. 也可通過配置環境變量來使用 (可選)

參考鏈接:
libcurl的下載、編譯和在Qt中的配置:https://blog.csdn.net/qq_50150638/article/details/140176873
一個非常優秀的跨平臺物聯網開發常用的網絡請求庫libcurl:https://cloud.tencent.com/developer/article/1962259

三、簡單測試

運行需注意:壓縮包里bin目錄下的libcurl-x64.dll,需拷貝到項目生成的.exe同目錄下,或者配置環境變量。測試結果,接口返回的響應如下所示:
在這里插入圖片描述


測試流程:

    1. Apifox這個軟件上創建測試接口,保存后會自動啟用Mock用于測試:
      在這里插入圖片描述
    1. 在cpp里增加如下代碼,注意替換Mock地址的URL
#include "include/curl/curl.h"
#include <QDebug>
#include <QJsonDocument>
#include <QByteArray>
#include <QJsonObject>size_t write(char *buffer, size_t size, size_t nmemb, std::string* stream)
{size_t len = size * nmemb;stream->append(buffer, len);return len;
}int main(int argc, char *argv[])
{CURL *curl;CURLcode res;std::string data;curl = curl_easy_init();if(curl) {curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1:4523/m1/6845287-6559514-default/api/cs");curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");struct curl_slist *headers = NULL;headers = curl_slist_append(headers, "Content-Type: multipart/form-data");curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);curl_mime *mime;curl_mimepart *part;mime = curl_mime_init(curl);part = curl_mime_addpart(mime);curl_mime_name(part, "id");curl_mime_data(part, "", CURL_ZERO_TERMINATED);part = curl_mime_addpart(mime);curl_mime_name(part, "name");curl_mime_data(part, "", CURL_ZERO_TERMINATED);curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);// recv_responsecurl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write);curl_easy_setopt(curl, CURLOPT_WRITEDATA, &data);res = curl_easy_perform(curl);curl_mime_free(mime);}curl_easy_cleanup(curl);QByteArray byte = QByteArray::fromStdString(data);QJsonDocument doc = QJsonDocument::fromJson(byte);qDebug() << doc;qDebug() << doc.object().value("id").toString();
}

參考鏈接:
libcurl 文件下載demo:https://blog.51cto.com/u_16213673/13733484
Apifox 新手快速上手:https://blog.csdn.net/c8899y/article/details/140907072
Apifox Mock 功能全解析:https://apifox.com/help/articles/apifox-mock/
Apifox 和 Apipost: API工具的成本考量:https://zhuanlan.zhihu.com/p/27127854818
掌握 Postman Mock server 的實用技巧:https://zhuanlan.zhihu.com/p/696581669
使用postman搭建mock服務 :https://www.cnblogs.com/wx170119/p/12512507.html
libcurl編譯與基本使用:https://blog.csdn.net/zwcslj/article/details/140265313

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95202.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95202.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95202.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Python語法基礎學習筆記】競賽常用標準庫

前言此系列筆記是撥珠自己的學習筆記&#xff0c;自用為主&#xff0c;學習建議移步其他大佬的專門教程。math庫Python 的 math 庫是標準庫之一&#xff0c;提供了大量數學運算相關的函數&#xff0c;適用于基礎數學計算、科學計算等場景。下面詳細介紹其使用方法及常用功能&am…

我的項目我做主:Focalboard+cpolar讓團隊協作擺脫平臺依賴

文章目錄前言1. 使用Docker本地部署Focalboard1.1 在Windows中安裝 Docker1.2 使用Docker部署Focalboard2. 安裝Cpolar內網穿透工具3. 實現公網訪問Focalboard4. 固定Focalboard公網地址前言 “項目管理軟件又漲價了&#xff01;“小團隊負責人小林發愁——剛習慣操作邏輯&…

【3D 入門-4】trimesh 極速上手之 3D Mesh 數據結構解析(Vertices / Faces)

【3D入門-指標篇上】3D 網格重建評估指標詳解與通俗比喻【3D入門-指標篇下】 3D重建評估指標對比-附實現代碼【3D 入門-3】常見 3D 格式對比&#xff0c;.glb / .obj / .stl / .ply Mesh 數據結構解析 1. Vertices&#xff08;頂點&#xff09; original_vertices mesh_ful…

無需服務器,免費、快捷的一鍵部署前端 vue React代碼--PinMe

作為前端的開發&#xff0c;有時候想部署一個項目真的是很“受氣”&#xff0c;要不就是找運維&#xff0c;或者后端&#xff0c;看別人的時間&#xff0c;或者走流程。 現在&#xff0c;有這么一個神器PinMe&#xff0c; 以前部署項目&#xff1a;自己買服務器?域名、 SSL、N…

【LeetCode_26】刪除有序數組中的重復項

刷爆LeetCode系列LeetCode26題&#xff1a;github地址前言題目描述題目與思路分析代碼實現算法代碼優化LeetCode26題&#xff1a; github地址 有夢想的電信狗 前言 本文介紹用C實現leetCode第26題題目鏈接&#xff1a;https://leetcode-cn.com/problems/remove-duplicates-…

CMake構建學習筆記23-SQLite庫的構建

1. 構建思路 在前文中構建了大量的庫包程序&#xff08;參看CMake構建學習筆記-目錄&#xff09;之后&#xff0c;可以總結一下在Windows下使用腳本構建程序的辦法&#xff1a; 使用CMake構建。這是目前最通用最流行的構建方式&#xff0c;大部分C/C程序都在逐漸向這個方向轉…

Watt Toolkit下載安裝并加速GitHub

一、下載 官方地址:(Steam++官網) - Watt Toolkit Gitee下載地址:https://gitee.com/rmbgame/SteamTools/releases/tag/3.0.0-rc.16

DevOps運維與開發一體化及Kubernetes運維核心詳解

前言&#xff1a; 在云原生時代&#xff0c;技術的融合與流程的重構已成為驅動業務創新的核心引擎。Kubernetes作為容器編排的事實標準&#xff0c;其穩定的運維能力是業務應用的基石&#xff1b;而DevOps所倡導的開發與運維一體化文化&#xff0c;則是實現快速交付和價值流動的…

HQX SELinux 權限問題分析與解決

Google自Android 5.0起強制實施的SELinux安全子系統&#xff0c;通過最小權限原則顯著提升了系統安全性&#xff0c;但這也導致開發過程中頻繁出現權限拒絕問題。值得注意的是&#xff0c;即便設備已獲取root權限&#xff0c;SELinux的強制訪問控制機制仍會限制部分敏感操作。 …

SpringBoot集成Kafka實戰應用

目錄 使用Kafka-Client實現消息收發 引入依賴 發送端&#xff1a; 消費端&#xff1a; SpringBoot集成 引入maven依賴 消費端 在上一篇我們深度解析了Kafka的運行操作原理以及集群消息消費機制等&#xff0c;請點擊下方鏈接獲取 Kafka消息隊列深度解析與實戰指南 本篇我…

單元測試總結2

1、重載和重寫的區別01、定義不同&#xff1a;重載是在同一個類中定義多個方法名相同但參數列表不同的方法&#xff1b;重寫是子類對父類中同名同參數列表的方法進行重新實現02、范圍不同&#xff1a;重載發生在同一個類中&#xff0c;重寫發生在子類和父類中03、參數要求不同&…

Wi-Fi技術——MAC特性

有線和無線網絡在數據鏈路層的特性存在差異&#xff0c;具體為&#xff1a; CSMA/CD 用于有線網絡&#xff0c;通過檢測和處理沖突來維持網絡的穩定性。CSMA/CA 用于無線網絡&#xff0c;強調沖突的預防&#xff0c;以應對無線信道共享的挑戰 1 有線網 CSMA/CD 有線網 CSMA/…

OpenHarmony 分布式感知中樞深度拆解:MSDP 框架從 0 到 1 的實戰指南

MSDP設備狀態感知框架技術開發文檔 1. 系統概述 1.1 框架定位 MSDP (Multi-Sensor Data Processing) 設備狀態感知框架是OpenHarmony系統中負責設備狀態識別和分發的核心服務,基于多傳感器融合技術,為系統應用提供設備狀態感知能力。 1.2 核心功能 靜止狀態識別:基于加速…

圖像 OSD層數據 顯示--OSD LOGO單色黑色顯示,按區域大小申請MMZ內存的優缺點分析

在監控攝像機、嵌入式顯示設備等場景中,OSD(On-Screen Display,屏幕顯示)LOGO 常需單色黑色顯示,且按區域大小申請 MMZ(Multi-Media Zone,多媒體專用內存)內存,該方案的優缺點需結合硬件資源、顯示效率、功能適配性等維度綜合分析,具體如下: 一、核心優勢:針對性優…

徐真妍最新雜志封面大片曝光,探索鏡頭下的多面魅力

近日&#xff0c;青年演員徐真妍拍攝的一組大片正式曝光。這組以 “森林系” 為主題的大片&#xff0c;登上時尚雜志《慵懶LAZY DAYS》8-9月刊封面。融合了優雅與現代先鋒感&#xff0c;展現了徐真妍甜美溫婉的表現力。鏡頭前的她&#xff0c;在多種風格間自如切換&#xff0c;…

廣度優先搜索(BFS, Breadth-First Search)

好的&#xff0c;我給你講 廣度優先搜索&#xff08;BFS, Breadth-First Search&#xff09;&#xff0c;并配一個直觀例子。1?? 什么是廣度優先廣度優先搜索的特點&#xff1a;按層訪問&#xff1a;先訪問根節點&#xff0c;然后訪問它的直接子節點&#xff0c;再訪問子節點…

GD32入門到實戰22--紅外NEC通信協議

ir_drv.c紅外傳輸協議地位在前&#xff0c;所以我們可以這樣保存數據到數組假使接收到1就>>1再|0x80&#xff0c;如果接收到0就>>1新建紅外驅動層代碼ir_drv.c#include <stdio.h> #include "gd32f30x.h" #include <stdbool.h> static voi…

zkML-JOLT——更快的ZK隱私機器學習:Sumcheck +Lookup

1. 引言 ICME團隊開源的zkML項目&#xff1a; https://github.com/ICME-Lab/jolt-atlas&#xff08;Rust&#xff09; zkML-JOLT&#xff08;JOLT ‘Atlas’&#xff09;構建在a16z Crypto團隊的JOLT研究和實現基礎上&#xff0c;其性能比其他zkML項目快了3到7倍。 a16z Cr…

【大模型記憶-Mem0詳解-2】系統架構

概述 Mem0 實現了雙架構系統&#xff0c;通過兩種主要部署模型為 AI 應用提供智能內存能力&#xff1a; 托管平臺 &#xff1a;通過 MemoryClient 和 AsyncMemoryClient 類訪問的托管服務開源 &#xff1a;以 Memory 類為中心的自托管組件&#xff0c;具有可插拔提供程序 此架構…

[Java]PTA:jmu-Java-01入門-取數字浮點數

本題目要求讀入若干以回車結束的字符串表示的整數或者浮點數&#xff0c;然后將每個數中的所有數字全部加總求和。輸入格式:每行一個整數或者浮點數。保證在浮點數范圍內。輸出格式:整數或者浮點數中的數字之和。題目保證和在整型范圍內。輸入樣例:-123.01 234輸出樣例:7 9代碼…