Как увеличить размер transport.dump от 256 байт до 512 или более байтов в KSOAP2?

У меня есть объект HttpTransportSE из библиотеки KSOAP2. Я хочу сбросить файл ответов, который может содержать mote, а затем простой символ 9697 . В настоящее время я делаю это, делая транспорт.

transport.debug = true; System.out.println("Response ----------"+transport.responseDump); 

Но это дает мне половину ответа наконец.

В своей внутренней структуре кодирования я обнаружил, что он использует 256 байтов для создания и уничтожения его responseDump, как показано ниже:

 package org.ksoap2.transport; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.MalformedURLException; import java.net.Proxy; import java.net.URL; import java.util.List; import org.ksoap2.HeaderProperty; import org.ksoap2.SoapEnvelope; import org.xmlpull.v1.XmlPullParserException; public class HttpTransportSE extends Transport { private ServiceConnection connection; public HttpTransportSE(String url) { super(null, url); } public HttpTransportSE(Proxy proxy, String url) { super(proxy, url); } public HttpTransportSE(String url, int timeout) { super(url, timeout); } public HttpTransportSE(Proxy proxy, String url, int timeout) { super(proxy, url, timeout); } public void call(String soapAction, SoapEnvelope envelope) throws IOException, XmlPullParserException { call(soapAction, envelope, null); } public List call(String soapAction, SoapEnvelope envelope, List headers) throws IOException, XmlPullParserException { if (soapAction == null) { soapAction = "\"\""; } byte[] requestData = createRequestData(envelope); this.requestDump = (this.debug ? new String(requestData) : null); this.responseDump = null; this.connection = getServiceConnection(); this.connection.setRequestProperty("User-Agent", "kSOAP/2.0"); if (envelope.version != 120) { this.connection.setRequestProperty("SOAPAction", soapAction); } this.connection.setRequestProperty("Content-Type", "text/xml"); this.connection.setRequestProperty("Connection", "close"); this.connection.setRequestProperty("Content-Length", "" + requestData.length); if (headers != null) { for (int i = 0; i < headers.size(); i++) { HeaderProperty hp = (HeaderProperty)headers.get(i); this.connection.setRequestProperty(hp.getKey(), hp.getValue()); } } this.connection.setRequestMethod("POST"); this.connection.connect(); OutputStream os = this.connection.openOutputStream(); os.write(requestData, 0, requestData.length); os.flush(); os.close(); requestData = null; List retHeaders = null; InputStream is; try { this.connection.connect(); is = this.connection.openInputStream(); retHeaders = this.connection.getResponseProperties(); } catch (IOException e) { is = this.connection.getErrorStream(); if (is == null) { this.connection.disconnect(); throw e; } } if (this.debug) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); byte[] buf = new byte[256]; while (true) { int rd = is.read(buf, 0, 256); if (rd == -1) break; bos.write(buf, 0, rd); } bos.flush(); buf = bos.toByteArray(); this.responseDump = new String(buf); is.close(); is = new ByteArrayInputStream(buf); } parseResponse(envelope, is); return retHeaders; } public ServiceConnection getConnection() { return (ServiceConnectionSE)this.connection; } protected ServiceConnection getServiceConnection() throws IOException { return new ServiceConnectionSE(this.proxy, this.url, this.timeout); } public String getHost() { String retVal = null; try { retVal = new URL(this.url).getHost(); } catch (MalformedURLException e) { e.printStackTrace(); } return retVal; } public int getPort() { int retVal = -1; try { retVal = new URL(this.url).getPort(); } catch (MalformedURLException e) { e.printStackTrace(); } return retVal; } public String getPath() { String retVal = null; try { retVal = new URL(this.url).getPath(); } catch (MalformedURLException e) { e.printStackTrace(); } return retVal; } } 

Вы обнаружили, что его единственный

Int rd = is.read (buf, 0, 256);

Итак, есть ли варианты увеличения размера responseDump?

    В ksoap нет ограничений, но он находится в logcat. Logcat не печатает длинные строки, поэтому пишите в файл или пишите по частям в журнале.

     if (transport.debug) { byte[] is = transport.responseDump.getBytes(); String path="/mnt/sdcard/appData/"; File file = new File(path+"responseDump.xml"); if (!file.exists()) { file.createNewFile(); } BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); bos.write(is); bos.flush(); bos.close(); } 
    Intereting Posts
    Просмотр пейджера в виде списка Ресурсы служб Google Play не найдены. Проверьте конфигурацию проекта, чтобы включить ресурсы Android – динамически настраивать градиент drawable Как я могу узнать, сколько памяти мое приложение использует из своего бюджета VM? Как вызвать метод класса CCColorLayer из другого метода (он расширяет активность), Android? Приложение Pjsua, сделанное ошибкой сообщения регистра pjsip? Как программно создать папку галереи в андроиде? Как заставить каждый ListItem перейти к другому действию Как изменить стиль и цвет вкладки с помощью библиотеки AppCompat Android: проведите экран, чтобы открыть другое действие? Как использовать библиотеку ijkplayer Использование javascript для захвата фотографий с iPhone / Android-камеры Запросы СМИ не ведут себя так, как ожидалось на Android Добавление тела в электронную почту на Android Как я могу читать рекламные данные Bluetooth LE в Android во время сканирования