다음 ReadBodyN()과 비슷한 코드를 사용하여 가져온 ByteBuffer 개체에 포함 된 XML 데이터를 구문 분석하려고합니다. 작은 XML 페이지에 Httprequest가 주어지면 ReadBodyN() 및 구문 분석이 정상적으로 작동합니다. 그러나 ReadBodyN()을 실행 한 후 50,000 개 이상의 문자가 포함 된 큰 XML 페이지의 경우 ByteBuffer 객체에서 15559 개의 문자 만 사용할 수 있습니다. 전체 XML을 bytebuffer로 가져 오려면 어떻게해야합니까?Httpresponse가 Tizen의 버퍼 크기를 초과합니다.
2
A
답변
2
다음 코드를 참조하십시오. 15559 바이트가 참조 데이터라고 말했듯이, 우리는 응답을 데이터 청크로받습니다. 따라서 전체 데이터를 얻을 때까지 바이트 버퍼 데이터를 수집해야합니다.
Code description:
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
}
}
관련 문제
- 1. "인덱스가 매트릭스 크기를 초과합니다"
- 2. 색인이 매트릭스 크기를 초과합니다.
- 3. "인덱스가 매트릭스 크기를 초과합니다."오류
- 4. 버퍼 풀 크기를 늘린 후에도 총 잠금 수가 잠금 테이블 크기를 초과합니다.
- 5. 버퍼 크기를 초과합니까?
- 6. 버퍼 및 버퍼 크기를 매개 변수로 전달
- 7. Node.js의 ReadSync 호출 중에 길이가 버퍼 오류를 초과합니다.
- 8. Tizen의 싱글 톤 클래스
- 9. Tizen의 ACL 사용 방법
- 10. Tizen의 Initrd/Initrc 파일
- 11. Tizen의 알람 레이블 설정
- 12. Matlab 오류 : 인덱스가 매트릭스 크기를 초과합니다.
- 13. Matlab cat() 함수 : 인덱스가 행렬 크기를 초과합니다
- 14. java.io.IOException : ''바이트가 ''바이트의 크기를 초과합니다. ''바이트를 입력합니다. ''
- 15. Ckeditor 표 크기가 페이지 크기를 초과합니다.
- 16. Matlab GUI 테이블 인덱스가 행렬 크기를 초과합니다
- 17. 힘내 백이 최대 허용 크기를 초과합니다
- 18. "인덱스가 매트릭스 크기를 초과합니다"라는 오류가 있습니다.
- 19. 지정한 크기가 최대 표현 가능 크기를 초과합니다
- 20. python ValueError : 열 인덱스가 행렬 크기를 초과합니다.
- 21. HttpResponse가 작동하지 않습니다.
- 22. Raspbian의 SPI 버퍼 크기를 늘리십시오.
- 23. WASAPI가 Windows에서 버퍼 크기를 캡처했습니다.
- 24. Winsock은 recv 버퍼 크기를 보냅니다.
- 25. Tizen의 systemd 사용자 인스턴스에 연결
- 26. Tizen의 데이터/데이터 란 무엇입니까
- 27. Tizen의 알림이있는 오디오 파일 재생
- 28. Django HttpResponse가 객체를 반환하지 않았습니까?
- 29. amzon redshift ERROR : 중간 결과 행이 데이터베이스 블록 크기를 초과합니다
- 30. 비트 맵 크기를 처리하는 방법이 android에서 오류를 초과합니다
... 감사합니다. –
환영합니다 ..... :) –