Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java ME (J2ME) > HTTPS, InputStream - не всё читает, почему? |
Автор: prog2013 16.11.2013, 01:50 | ||
Здравствуйте! Помогите, не могу прочитать ответ от сервера полностью. Использую Get-запрос к веб-серверу по https. Когда даных мало, всё читается за один раз, а когда их больше 4000 байт, то читается только одна порция. Использую j2me SDK 3.3 из среды нетбинс в.7. В проге использую стандартное:
При отладкке заметил. У InputStream есть константа SKIP_BLOCK_SIZE= 4096. Похоже как-то с этим связано, т.к. len= 3759 байт и дальше текст теряется из-за того, что следующая попытка выполнить len= ins.available(); даёт len = 0. Писать свой SKIP_BLOCK_SIZE= 8 тыщ. или больше как-то не красиво, а это возвращаются запросы к БД. Как думаете, в чём м.б. дело? Ведь во всех примерах именно так и пишут, да и в форумах те же примеры гуляют. |
Автор: prog2013 16.11.2013, 14:44 | ||
В общем сделал пока цикл в цикле. Впечателние такое, что ins.available() нужно "подтолкнуть", чтобы оно прочло следущую порцию.
А когда будет давать 0 байт при наличии данных, тогда сначала попробую "подтолкнуть" буфер чтением одного байта =read(); либо сразу поставлю =read(); в первый цикл. |
Автор: qpimap 6.5.2015, 18:41 |
import java.io.FileReader; import java.io.BufferedReader; import java.io.IOException; public class Lab_1 { public static void main(String[]args) { FileReader myFile=null; BufferedReader buff=null; String line=new String(); try{ myFile=new FileReader("d:\\a.txt"); buff=new BufferedReader(myFile); while(true) { line=buff.readLine(); if(line==null) break; System.out.println(line); char[]m=line.toCharArray(); System.out.println(m[0]); } } catch(IOException e) { e.printStackTrace(); }finally{ try{ buff.close(); myFile.close(); }catch(IOException e1){ e1.printStackTrace(); } } } } ==================================== вставляешь в файл .txt данные . И на выходе после компиляции получаешь .class с массивом который и будешь использовать в своей MIDlet программе как файл с данными ... очень полезный скрипт при составлении русификаторов или других баз данных в J2ME ... ![]() |