栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

curl的使用和发送POST请求传参取返回值实例C++

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

curl的使用和发送POST请求传参取返回值实例C++

- 引用curl

下载curl包 https://curl.se/download.html(网上有很多下载最新版本的就行)
我的资源里有我用的版本

会得到两个压缩文件,解压后

把文件里的 curl 文件夹 和两个curl链接库添加到项目文件里

添加 libcurl.lib 资源

项目添加现有项目,添加文件里的curl.h 文件

添加#include “curl/curl.h” 头文件

然后看代码
//UTF82WCS转CString
CString UTF82WCS(const char* szU8)
{
	//预转换,得到所需空间的大小;
	int wcsLen = ::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), NULL, 0);

	//分配空间要给''留个空间,MultiByteToWideChar不会给''空间
	wchar_t* wszString = new wchar_t[wcsLen + 1];

	//转换
	::MultiByteToWideChar(CP_UTF8, NULL, szU8, strlen(szU8), wszString, wcsLen);

	//最后加上''
	wszString[wcsLen] = '';

	CString unicodeString(wszString);

	delete[] wszString;
	wszString = NULL;

	return unicodeString;
}

//传入url和参数,return的就是返回值
CString m_Post::SendCurl(std::string url,std::string admintoken)
{
	string response = "";
	CURL* curl;
	CURLcode res;
	curl = curl_easy_init();
	if (curl) {
		curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
		curl_easy_setopt(curl, CURLOPT_URL, url);
		curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
		curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "http");
		
		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, "admintoken");
		curl_mime_data(part, admintoken.c_str(), CURL_ZERO_TERMINATED);//传入的是字符串的话可能要转为UTF8服务器才能识别,不然传入的可能是(null)
		part = curl_mime_addpart(mime);
		
		curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);

		curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &getUrlResponse);
		curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);

		res = curl_easy_perform(curl);
		curl_mime_free(mime);
	}
	curl_easy_cleanup(curl);

	CString Cjson = UTF82WCS(response.c_str());//UTF8编码转CString
	return Cjson;
}

没有传成功看一下res的值,
如果是60,这是因为没有安装引用协议什么的
加上这行就好

		curl_easy_setopt(curl, CURLOPT_CAINFO, "./cacert.pem");

pem文件我的资源里面有

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/949994.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号