Visual Studio 2015 - 项目配置 Libcurl 静态库

本文介绍了一个使用libcurl库进行HTTP请求的C++示例程序。该程序展示了如何初始化CURL句柄、设置请求选项并执行GET操作来获取网页内容。此外,还提供了一种将UTF-8编码的字符串转换为宽字符字符串的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

增加预处理配置 ;BUILDING_LIBCURL;HTTP_ONLY

这里写图片描述

这里写图片描述

添加项目依赖项 libcurl.lib ws2_32.lib winmm.lib wldap32.lib

这里写图片描述

测试代码

// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <stdio.h>  
#include <windows.h>    
#include <iostream>  
#include <string>  
#include <curl/curl.h>  
using namespace std;


using namespace std;

size_t Reply(void * ptr, size_t size, size_t nmemb, void * stream)
{
    string* str = (string*)stream;
    (*str).append((char*)ptr, size*nmemb);
    return size*nmemb;
}
wstring str_cvt(const string& from_str, int cvt_type) {
    int wstr_len = MultiByteToWideChar(cvt_type, 0, from_str.c_str(), -1, nullptr, 0);
    wchar_t *wstr = new wchar_t[wstr_len + 1];
    memset(wstr, 0, (wstr_len + 1) * sizeof(wchar_t));
    MultiByteToWideChar(cvt_type, 0, from_str.c_str(), -1, wstr, wstr_len);
    wstring ret_str(wstr); delete[] wstr;
    return ret_str;
}
string str_cvt(const wstring& from_str, int cvt_type) {
    int str_len = WideCharToMultiByte(cvt_type, 0, from_str.c_str(), -1, nullptr, 0, nullptr, nullptr);
    char *str = new char[str_len + 1];
    memset(str, 0, str_len + 1);
    WideCharToMultiByte(cvt_type, 0, from_str.c_str(), -1, str, str_len, nullptr, nullptr);
    string ret_str(str); delete[] str;
    return ret_str;
}


int main()
{
    string data; // 返回的内容  
    CURL *curl;
    CURLcode res;

    curl_global_init(CURL_GLOBAL_ALL);

    curl = curl_easy_init();
    if (curl) {
        curl_easy_setopt(curl, CURLOPT_URL, "http://www.redu.com");
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
        curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, Reply);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &data);
        res = curl_easy_perform(curl);
        if (res != CURLE_OK)
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        curl_easy_cleanup(curl);
    }
    curl_global_cleanup();
    cout << str_cvt(str_cvt(data, CP_UTF8), CP_ACP) << endl;
    getchar();
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值