首页 > 其他 > 详细

libcurl解压gzip编码

时间:2014-03-19 14:03:10      阅读:478      评论:0      收藏:0      [点我收藏+]

cocos2d-x 2.1.3使用libcurl请求数据的时候若要指定返回数据编码可以设置header如下

bubuko.com,布布扣
CCHttpRequest* request = new CCHttpRequest();
// set base param
request->setUrl(url);
request->setRequestType(type);
request->setResponseCallback(this, httpresponse_selector(yourClass::onHttpRequestCompleted));
request->setRequestData(requestDataBuffer, requestDataBufferLength);
request->setTag(tag);

// set header
std::vector<std::string> header;
header.push_back("Accept-Encoding:gzip,deflate");
request->setHeaders(header);
bubuko.com,布布扣

然后在接受数据的时候若需要libcurl自动解压数据只需要在合适的地方加上

// 最后一个参数就写一个空字符串,这样libcurl会根据返回数据解压它所支持的所有编码格式
curl_easy_setopt(handle, CURLOPT_ACCEPT_ENCODING, "");

我这里将“合适的地方”定位在了 函数:

configureCURL

里面。

反正要放在设置网络数据接受回调函数之前,也就是下面这句代码。否则会导致libcurl没有解压数据。

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);

 

 

若要检测libcurl编译的版本是否包含zlib可以加上这句代码

CCLog("curl version: %s", curl_version());

 

打印libcurl版本包含的信息。

 

参考文档:

http://curl.haxx.se/dev/readme-encoding.html

libcurl解压gzip编码,布布扣,bubuko.com

libcurl解压gzip编码

原文:http://www.cnblogs.com/tranquil/p/3611116.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!