Используйте следующий код для справки, в Tizen мы получаем ответ в виде блоков данных, Как вы сказали, 15559 байт является ссылкой на данные. Поэтому вы должны собирать данные байтового буфера, пока не получите все данные.
Code description:
держать ByteBuffer в качестве переменной класса (here _pBuff
)
_hasData
это флаг, который устанавливается после того, как буфер содержит данные (Затем необходимо добавить данные)
После того, как вы получите все данные очистить _pbuff
void YourClass::OnTransactionReadyToRead(HttpSession& httpSession,
HttpTransaction& httpTransaction, int availableBodyLen) {
AppLog("Transaction Ready to Read : availableBodyLen %d", availableBodyLen);
try {
HttpResponse* pHttpResponse = null;
HttpHeader* pHttpHeader = null;
pHttpResponse = httpTransaction.GetResponse();
if (pHttpResponse->GetHttpStatusCode() == HTTP_STATUS_OK) {
bool _hasData = false;
if (!_pBuff) {
_pBuff = new ByteBuffer;
_pBuff->Construct(availableBodyLen);
}
else
{
_pBuff->ExpandCapacity(_pBuff->GetCapacity() + availableBodyLen);
_hasData = true;
}
pHttpHeader = pHttpResponse->GetHeader();
if(_hasData)
{
ByteBuffer* pBody = pHttpResponse->ReadBodyN();
// add to local store
byte* pByte = new byte[availableBodyLen];
pBody->GetArray(pByte,0,availableBodyLen);
_pBuff->SetPosition(_pBuff->GetCapacity() - availableBodyLen);
_pBuff->SetArray(pByte,0,availableBodyLen);
delete []pByte;
delete pBody;
}
else
_pBuff = pHttpResponse->ReadBodyN();
// Your Call || code
}
}
Его работа ... Спасибо. –
добро пожаловать ..... :) –