0
我一直在使用HttpConnection
與索尼愛立信W580有問題。HttpConnection截斷消息索尼愛立信W580
對我的http請求的響應是application/octet-stream
,並且我發送了一個相當大的字節數組。
在這款手機但是,它始終被削減到210個字節......
我在大量不同的手機測試MIDP應用程序,使用不同的移動運營商和Wi-Fi ,並沒有其他手機顯示出這種行爲。
我一直在使用HttpConnection
與索尼愛立信W580有問題。HttpConnection截斷消息索尼愛立信W580
對我的http請求的響應是application/octet-stream
,並且我發送了一個相當大的字節數組。
在這款手機但是,它始終被削減到210個字節......
我在大量不同的手機測試MIDP應用程序,使用不同的移動運營商和Wi-Fi ,並沒有其他手機顯示出這種行爲。
好的,我發現了這個問題。完全是我的錯......
如何在讀流:
while(true){
int bytesRead = stream.read(tmpBuffer);
// if -1, EOF
if(bytesRead < 0)
break;
(...)
// WRONG LOGIC !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// if we read the last chunk of data, and found EOF
if(bytesRead < tmpBufferArrayLength)
break;
// WRONG LOGIC !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
見之間的部分「錯誤邏輯!」註釋?我假設如果讀取(tmpBuffer)不能完全填充tmp緩衝區,那是因爲EOF正在達到。 API並不能保證這一點:它只是聲明EOF是通過返回-1的讀取(tmpBuffer)來發信號。
我之前沒有看到這個,因爲我測試過的所有手機(和emulatores)都能夠在每次通話時完全填充緩衝區。