cocos2d-x2.0.2的httpclient扩展数据不全bug
刚绑完lua, 试用的时候就发现取到的数据不全, debug了之后发现是cocos2d-x 里httpclient扩展的一个小bug;
writeData是当curl收到数据的时候的数据copy函数, 也就是把curl收到的一段一段的数据包,我们把它”拼接”成一个完成的data;然后把整个data返回给调用者, 那自然是不能clear()的, 不然整个结果肯定就收到的就是最后一次的数据;
HttpClient.ccp 的writeData 修改为:
1
2
3
4
5
6
7
8
9
10
11
12
13
size_t writeData(void *ptr, size_t size, size_t nmemb, void *stream)
{
std::vector<char> *recvBuffer = (std::vector<char>*)stream;
size_t sizes = size * nmemb;
// recvBuffer->clear();
// recvBuffer->assign((char*)ptr, (char*)ptr + sizes);
recvBuffer->insert(recvBuffer->end(), (char*)ptr, (char*)ptr + sizes);
return sizes;
}