23 static char const * GetVersion();
33 struct curl_slist * _slist;
38 void append(
char const * s );
40 operator struct curl_slist * ()
const {
return _slist; }
47 struct curl_httppost * _first;
48 struct curl_httppost * _last;
60 operator struct curl_httppost * ()
const {
return _first; }
73 static size_t WriteCallback(
char * buf,
size_t itemSize,
size_t count,
void * data );
75 virtual size_t OnWrite(
char * buf,
size_t itemSize,
size_t count );
78 static size_t ReadCallback(
char * buf,
size_t itemSize,
size_t count,
void * data );
80 virtual size_t OnRead(
char * buf,
size_t itemSize,
size_t count );
83 static size_t HeaderCallback(
char * buf,
size_t itemSize,
size_t count,
void * data );
85 virtual size_t OnHeader(
char * buf,
size_t itemSize,
size_t count );
88 static int ProgressCallback(
void * data,
double dltotal,
double dlnow,
double ultotal,
double ulnow );
90 virtual int OnDownloadProgress(
double dltotal,
double dlnow );
92 virtual int OnUploadProgress(
double ultotal,
double ulnow );
98 CUrl(
bool isInit =
true );
103 CUrl & operator = (
CUrl const & other );
120 void setHttpGet(
bool b =
true );
126 void setHttpPost(
bool b =
true );
135 void setErrorBuffer(
char * errBuf );
138 void setNoProgress(
bool b );
147 void setPostFields(
char const * data );
150 void setPostFieldSize(
long size );
156 void setHttpHeader(
SList const & headers );
159 void setVerbose(
bool b );
167 void setSslVerifyPeer(
bool b );
172 void setSslVerifyHost(
bool b );
175 typedef size_t (* WriteFunction)(
char * buf,
size_t itemSize,
size_t count,
void * data );
177 void setWriteHandler( WriteFunction handler );
179 void setWriteHandlerData(
void * data );
181 typedef size_t (* ReadFunction)(
char * buf,
size_t itemSize,
size_t count,
void * data );
182 void setReadHandler( ReadFunction handler );
183 void setReadHandlerData(
void * data );
185 typedef size_t (* HeaderFunction)(
char * buf,
size_t itemSize,
size_t count,
void * data );
186 void setHeaderHandler( HeaderFunction handler );
187 void setHeaderHandlerData(
void * data );
189 typedef int (* ProgressFunction)(
void * data,
double dltotal,
double dlnow,
double ultotal,
double ulnow );
190 void setProgressHandler( ProgressFunction handler );
191 void setProgressHandlerData(
void * data );
194 operator CURL * ()
const {
return _curl; }
197 int errNo()
const {
return _errNo; }
200 char const * errNoStr()
const;
203 char const * error()
const;
212 virtual size_t OnWrite(
char * buf,
size_t itemSize,
size_t count );
231 char const * getResponseStr(
winux::ulong * size = NULL )
const;
245 #endif // __CURL_HPP__
std::basic_string< char > AnsiString
#define DISABLE_OBJECT_COPY(clsname)
CUrlError(int errNo, char const *err)
缓冲区,表示内存中一块2进制数据(利用malloc/realloc进行内存分配)
http post请求以“multipart/formdata”方式发送数据的支持类
int errNo() const
执行后得到的错误码(CURLcode)
libcurl低层封装,主要提供了CURL句柄资源管理功能
std::basic_string< tchar > String