2016-04-19 6 views
1

Ich verwende HTTPURLConnection zum Verbinden mit dem Server und meine Antwort enthält Base64 Bilddaten. Beim Versuch, die Antwort mit getInputStream zu lesen, wird die vollständige Antwort nicht gelesen. Meine Antwort enthält eine Liste von Objekten im JSON-Format und jedes Objekt enthält BASE64-Bilddaten. Das Lesen bricht ab, während versucht wird, die ersten Bilddaten vom ersten Objekt zu lesen. Obwohl es keinen Fehler zeigt, zeigt es bis zur Hälfte der Bilddaten an. Wie bekomme ich die volle Antwort? Hier ist mein CodeBase64-Bilddaten werden nicht in android

InputStream is = httpURLConnection.getInputStream(); 
      byte[] b = new byte[1024]; 
      StringBuffer buffer=new StringBuffer(); 
      while (is.read(b) != -1){ 
       buffer.append(new String(b)); 
       System.out.println("Read= "+is.read()); 
      } 
System.out.println(buffer); 
+2

Es ist möglich, dass Base64-Strings lang sind, wird es abgeschnitten, wenn Sie versuchen, sie zu protokollieren. Versuchen Sie es in einer Datei zu speichern. Sie sollten in der Lage sein, den gesamten String zu sehen. –

+0

@EricB. habe es versucht, aber das gleiche Ergebnis bekommen. –

+2

versuchen Sie Methode von diesem Link, um inputStream http://StackOverflow.com/Questions/8654876/http-get-using-android-httpurlconnection –

Antwort

0

Haben Sie den Beispielcode aus Google versucht?

URL url = new URL("http://www.android.com/"); 
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
try { 
    InputStream in = new BufferedInputStream(urlConnection.getInputStream()); 
    readStream(in); 
} finally { 
    urlConnection.disconnect(); 
} 

wo readStream ist Ihre eigene Methode.

Lesen von einer BufferedInputStream ist einfacher und schneller.

Verwandte Themen