一、下载 curl官方地址 http://curl.haxx.se/
二、打开项目 找到
使用vs2012 打开
三、编译
选择要编译的目的
ssl要添加其他的资源包
四、运用
#define _CRT_SECURE_NO_DEPRECATE
#include <iostream>
#include <curl/curl.h>
using namespace std;
size_t processFunc( void* ptr, size_t size, size_t nmemb, void *usrptr )
{
//CCUrl* p =(CCUrl*) usrptr;
cout<<"processFunc:"<<size * nmemb<<endl;
return size * nmemb;
}
int doHttpGet( const char* url, const char* data, long timeout, long withheader )
{
CURL* m_curl=curl_easy_init();
size_t urllen = strlen( url );
size_t datalen = strlen( data );
char* surl = new char[ urllen + datalen + 1 + 1];
if( !surl )
{
fprintf( stderr, "doHttpGet failed, unable to malloc memery\n" );
return -1;
}
strncpy( surl, url, urllen );
surl[ urllen ] = '?';
strcpy( surl + urllen + 1, data );
::curl_easy_setopt( m_curl, CURLOPT_URL, surl );
/*::curl_easy_setopt( m_curl, CURLOPT_HTTPGET, 1 );
::curl_easy_setopt( m_curl, CURLOPT_HEADER, withheader );
::curl_easy_setopt( m_curl, CURLOPT_TIMEOUT, timeout );
::curl_easy_setopt( m_curl, CURLOPT_WRITEFUNCTION, processFunc ); */
//::curl_easy_setopt( m_curl, CURLOPT_WRITEDATA, this );
CURLcode res = ::curl_easy_perform( m_curl);
delete [] surl;
return ( 0 == res ) ? 0 : -1;
}
void testCCUrlDoHttpGet( const char* name, const char* age )
{
char data[1024];
sprintf( data, "name=%s&age=%s", name, age );
char url[1024];
sprintf( url, "http://192.168.3.200:8080/action.get.php");
cout<<url<<endl;
cout<<data<<endl;
doHttpGet( url, data, 10, 1 );
}
void main(){
testCCUrlDoHttpGet("aa","bb");
system("pause");
}
VS报错
error LNK2001: unresolved external symbol __imp__curl_easy_perform
error LNK2001: unresolved external symbol __imp__curl_easy_setopt
error LNK2001: unresolved external symbol __imp__curl_easy_init
error LNK2001: unresolved external symbol __imp__curl_easy_cleanup
error LNK2001: unresolved external symbol __imp__curl_easy_setopt
error LNK2001: unresolved external symbol __imp__curl_easy_init
error LNK2001: unresolved external symbol __imp__curl_easy_cleanup
- 解决方法:
项目属性->link->input:
libcurl.lib ws2_32.lib winmm.lib wldap32.lib
项目属性->C/C++->Preprocessor->Definitions 增加:
BUILDING_LIBCURL
HTTP_ONLY
项目设置如下
使用教程
http://blog.csdn.net/jgood/article/details/4787670
示例代码下载
http://pan.baidu.com/s/1ntwvBAD