我在lua中使用XMLHttpRequest请求数据:服务端返回的数据是:0x 00 00 0f ab
1、设置 xhr.responseType = cc.XMLHTTPREQUEST_RESPONSE_ARRAY_BUFFER
2、在回调中输出这个输出:
local response = xhr.response
local strS = " respones = 0x"
for k, v in ipairs(response) do
strS = string.format("%s %02x", strS, v)
end
cclog(strS)
------------结果是: respones = 0x 00 00 00 50
上面结果和服务端返回数据不一样!!!!
3、然后我在XMLHttpRequest源码中增加输出:
在LuaMinXmlHttpRequest::_sendRequest方法中添加代码:
char* concatenated = (char*) malloc(buffer->size() + 1);
std::string s2(buffer->begin(), buffer->end());
strcpy(concatenated, s2.c_str());
if (statusCode == 200)
{
// 下面新增输出:
for(unsigned int i=0;i < buffer->size();i++){
CCLOG("%02x", (*buffer) *); }
for(unsigned int i=0;i < buffer->size() + 1;i++){
CCLOG("%02x", concatenated*);
}
------------结果是:buffer: 0x 00 00 0f ffffab
------------结果是:concatenated: 0x 00 00 00 50 20
上面结果中,buffer是对的,只是最后一个byte输出怪怪的(ffffab);但是从buffer拷贝出来的concatenated却变了。这样出大bug了
求解析,求解决方法
**