91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 123KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-08
  • 語言: C/C++
  • 標簽: curl??c++??get??post??download??

資源簡介

c++封裝了curl的get,post,download

資源截圖

代碼片段和文件信息

#include?“stdafx.h“
#include?“Httper.h“

#include?
#include?
#include?
#include?????
#include?
#include?
#include?

#include?“FunAssistant.h“
#include?“FileAssistant.h“


using?namespace?std;

HttpRs*?HttpRs::g_curlFailed?=?nullptr;

size_t?write_data(void?*ptr?size_t?size?size_t?nmemb?void?*stream)?{
string?data((const?char*)ptr?(size_t)size?*?nmemb);
*((stringstream*)stream)?< return?size?*?nmemb;
}

size_t?write_file(void?*ptr?size_t?size?size_t?nmemb?FILE?*stream)
{
size_t?written;
written?=?fwrite(ptr?size?nmemb?stream);
return?written;
}
//////////////////////////////////////////////////////////////////////////


HttpRs*?HttpRs::CurlFailed()
{
if?(nullptr?==?g_curlFailed)?{
g_curlFailed?=?new?HttpRs(false?““);
}

return?g_curlFailed;
}


//////////////////////////////////////////////////////////////////////////
void?Httper::globalInit()
{
curl_global_init(CURL_GLOBAL_ALL);
}

void?Httper::globalClean()
{
curl_global_cleanup();
}

HttpRs?Httper::get(const?std::string&?url)
{
std::stringstream?out;
MyCurl?curl?=?normalCurl(url?std::vector?()?&out);
if?(nullptr?==?curl.curl)?{
return?*HttpRs::CurlFailed();
}

return?request(&curl?&out);
}

HttpRs?Httper::post(const?std::string&?url?const?std::string&?postFields)
{
std::stringstream?out;
MyCurl?mycurl?=?normalCurl(url?std::vector?()?&out);
if?(nullptr?==?mycurl.curl)?{
return?*HttpRs::CurlFailed();
}

curl_easy_setopt(mycurl.curl?CURLOPT_POST?1);
curl_easy_setopt(mycurl.curl?CURLOPT_POSTFIELDS?postFields.c_str());

return?request(&mycurl?&out);
}

HttpRs?Httper::request(MyCurl?*mycurl?std::stringstream*?rs)
{
AutoCleanMyCurl?clean(mycurl);
CURLcode?res?=?curl_easy_perform(mycurl->curl);
if?(res?!=?CURLE_OK)?{
return?HttpRs(false?curl_easy_strerror(res));
}

return?HttpRs(true?rs->str());
}

HttpRs?Httper::download(const?std::string&?url?const?std::vector&?headers?const?std::string&?outfilename)
{
CURL?*curl?=?curl_easy_init();
if?(nullptr?==?curl)?{
return?*HttpRs::CurlFailed();
}

curl_easy_setopt(curl?CURLOPT_URL?url.c_str());
curl_easy_setopt(curl?CURLOPT_WRITEFUNCTION?write_file);
FILE?*fp?=?fopen(outfilename.c_str()?“wb“);
curl_easy_setopt(curl?CURLOPT_WRITEDATA?fp);
curl_easy_setopt(curl?CURLOPT_VERBOSE?1L);

curl_easy_setopt(curl?CURLOPT_FOLLOWLOCATION?1L);
curl_easy_setopt(curl?CURLOPT_NOSIGNAL?1);?//Prevent?“l(fā)ongjmp?causes?uninitialized?stack?frame“?bug
curl_easy_setopt(curl?CURLOPT_ACCEPT_ENCODING?“deflate“);

struct?curl_slist?*chunk?=?NULL;
std::for_each(headers.begin()?headers.end()?[&](const?std::string&?header)
{
chunk?=?curl_slist_append(chunk?header.c_str());
});

AutoCleanMyCurl?clean(&MyCurl(curl?chunk));
CURLcode?res?=?curl_easy_perform(curl);

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4028??2015-07-21?17:49??curlpp\Httper.cpp

?????文件???????1349??2015-07-21?16:52??curlpp\Httper.h

?????文件?????262144??2015-07-21?11:58??curlpp\libcurl.dll

?????文件??????13900??2015-07-21?11:58??curlpp\libcurl.lib

?????目錄??????????0??2015-07-24?14:56??curlpp

-----------?---------??----------?-----??----

???????????????281421????????????????????5


評論

共有 條評論