diff --git a/jlib/util/curl_wrapper.h b/jlib/util/curl_wrapper.h index f1df807a22eb5a735063cad45886fc8958662eb6..7dff50a334f0acad2f5fe377267661c65abe6511 100644 --- a/jlib/util/curl_wrapper.h +++ b/jlib/util/curl_wrapper.h @@ -1,15 +1,32 @@ #pragma once -#include "../3rdparty/curl/curl.h" +/** +* simple curl wrapper +* under windows, you should config project's include/lib path to your curl-path. +* define CURL_STATICLIB in your prject +* the input libs are: libcurl.lib;ws2_32.lib;wldap32.lib;crypt32.lib; +*/ + + +#include <curl/curl.h> #include <string> #include "mem_tool.h" namespace jlib { -class Curl +struct CurlHelper { + CurlHelper() { + curl_global_init(CURL_GLOBAL_ALL); + } + + ~CurlHelper() { + curl_global_cleanup(); + } +}; + +struct Curl { -public: Curl() { static CurlHelper helper = {}; } ~Curl() { @@ -79,16 +96,8 @@ public: } #endif // JLIB_LOG2_ENABLED -private: - struct CurlHelper { - CurlHelper() { - curl_global_init(CURL_GLOBAL_ALL); - } - ~CurlHelper() { - curl_global_cleanup(); - } - }; +///////////////////////////// details /////////////////////////////// CURL* curl_ = nullptr; std::string buffer_ = {}; diff --git a/test/test_curl_wrapper/test_curl_wrapper.cpp b/test/test_curl_wrapper/test_curl_wrapper.cpp index fd1f47a412a8fd580ae641845bfbeac476382799..bae6706e74e89c190054241da506788dff53bf6b 100644 --- a/test/test_curl_wrapper/test_curl_wrapper.cpp +++ b/test/test_curl_wrapper/test_curl_wrapper.cpp @@ -1,9 +1,6 @@ #include "../../jlib/util/curl_wrapper.h" #include <stdio.h> -#ifdef _WIN32 -#pragma comment(lib, "../../jlib/3rdparty/curl/libcurldll.a") -#endif using namespace jlib; @@ -11,7 +8,9 @@ int main() { Curl curl; curl.init(); - curl.get("qq.com"); + curl.get("https://baidu.com"); printf("HTTP %ld\n", curl.lastHttpCode()); + printf("error %d\n", curl.lastError()); + printf("error msg %s\n", curl.lastErrorMsg().data()); printf("%s\n", curl.lastHttpContent().data()); } diff --git a/test/test_curl_wrapper/test_curl_wrapper.vcxproj b/test/test_curl_wrapper/test_curl_wrapper.vcxproj index 68780ae119d97676ba88c437ff0e636aea901c58..ddb08d2f30d3b6679053228d247f3d60feab56f9 100644 --- a/test/test_curl_wrapper/test_curl_wrapper.vcxproj +++ b/test/test_curl_wrapper/test_curl_wrapper.vcxproj @@ -76,9 +76,13 @@ <Optimization>Disabled</Optimization> <SDLCheck>true</SDLCheck> <ConformanceMode>true</ConformanceMode> + <AdditionalIncludeDirectories>$(DEVLIBS)\curl-7.66.0\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <PreprocessorDefinitions>CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <SubSystem>Console</SubSystem> + <AdditionalLibraryDirectories>$(DEVLIBS)\curl-7.66.0\build\Win32\VC15\LIB Release - DLL Windows SSPI;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>libcurl.lib;ws2_32.lib;wldap32.lib;crypt32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">