在vs2005中使用libcurl

这些天用vc++写了点http post和get的东西玩玩,碰到些问题顺便记录下来

 

c#里提供了很方便的HttpWebRequest类但vc++就没这么幸运了,本以为很简单就随手写一个类试试

这期间遇到的问题还是很多,比如utf8编码,gzip压缩,http redirect

压缩编码问题还是有很多人遇到了,虽然花了些时间不过还是解决了,但是http redirect一直没搞定

本来想看看libcurl的代码,无奈一点都不熟悉看的毫无头绪,于是就想着先熟悉基本用法再去研究代码了

 

顺便说下:现在网上抄的东西太多,很多人随便拖点东西到自己的blog也不验证一下就放出来了,本来很简单的事情弄的不那么顺利

 

说说我自己怎么用libcurl吧

 

 

这个是我编译libcurl的时候参考的

http://linxh.blog.ccidnet.com/blog-htm-do-showone-uid-39995-type-blog-itemid-152022.html

 

 这个是官方文档:

http://curl.haxx.se/libcurl/c/

 

1、下载libcurl的源代码

下载地址:http://curl.haxx.se/download.html

进去后最上面的几个链接就是了,这些只是压缩方式不同,随便下一个能解压的就行(不会的就选第三个windows自己就能解压)

(注意:libcurl和curl 的区别,一个是curl库,而另一个是工具)

 

下载后解压到 C:/curl

 

2、如果以后要用到gzip的话就需要下载zlib

 

http://www.zlib.net/zlib123-dll.zip

 

把下载好的文件解压到 C:/zlib

 

 

3、编译

 

我要访问的网页可以用gzip压缩,为了加快访问速度我就加了gzip模块

ssl我没用到,所以编译的时候去掉了

 (详细的见我上面提到的编译参考的blog)

 

 

 

这里要提醒下:如果你用debug方式运行你的程序,记得用debug编译的库;同理你release版本程序用release版本的库

 

 4、使用libcurl:

 

(1)将  C:/curl/include/ 下的 crul目录复制到你的工程目录下(和你工程里的其他.cpp文件放一个目录)

(2)在用到libcurl的cpp文件里加入:

 

#include "curl/curl.h"
#pragma comment(lib,"libcurld_imp.lib")

 

然后就可以正常使用了

 

还有一个需要提醒的就是write_callback的调用方式

 

我把write_callback作为类成员时总是出错,后来查了是c的调用方式不一样

我目前把write_callback作为全局函数就没问题了,应该可以指定调用方式解决的

 

 

今天先写到这儿,下次有空再继续给个列子

编译Debug版本。

set CFG=debug-dll-zlib-dll

set ZLIB_PATH=C:/zlib/include

nmake -f Makefile.vc8

 

其输出:libcurld_imp.lib, libcurld.dll

 

编译Release版本。

 

其输出:libcurl_imp.lib, libcurl.dll

set CFG=release-dll-zlib-dll

set ZLIB_PATH=C:/zlib/include

nmake -f Makefile.vc8

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值