typedef void(*MyHttpCallBack)(char *buffer, size_t size, size_t nitems, void *outstream);
class MYHTTP_API MyHttp
{
public:
MyHttp::MyHttp();
MyHttp::~MyHttp();
int Seturl(std::string url);
int SendData(std::string data);
int SetCallBack(MyHttpCallBack My_CallBcak);
private:
std::string * MyUrl;
MyHttpCallBack MyCb;
CURL *curl;
static CURLcode Cc;
};
#include "MyHttp.h"
CURLcode MyHttp::Cc = curl_global_init(CURL_GLOBAL_ALL);
MyHttp::MyHttp()
{
MyCb = NULL;
MyUrl = new std::string();
curl = curl_easy_init();
if (NULL == curl)
{
//printf("curl_easy_init failed");
}
}
MyHttp::~MyHttp()
{
delete MyUrl;
MyUrl = NULL;
curl_easy_cleanup(curl);
//curl_global_cleanup();
}
int MyHttp::Seturl(std::string url){
*MyUrl = url;
return 0;
}
int MyHttp::SendData(std::string data){
CURLcode res;
if (MyCb == NULL){
//printf("MyCb NULL");
return MYHTTPCALLBACKISNULL;
}
if (curl == NULL){
//printf("curl_easy_init failed");
return INITFAIL;
}
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, MyCb);
curl_easy_setopt(curl, CURLOPT_URL, MyUrl->c_str());
res = curl_easy_perform(curl);
if (res != CURLE_OK)
{
//printf(" curl_easy_perform error\n");
return res;
}
return 0;
}
int MyHttp::SetCallBack(MyHttpCallBack My_CallBcak){
MyCb = My_CallBcak;
return 0;
}