URL auslesen

  • 2 Antworten
  • Letztes Antwortdatum
S

Schneemann3

Ambitioniertes Mitglied
6
Was mach ich falsch

PHP:
...
URL url = new URL("http://ww.bla.de");

HttpURLConnection c = (HttpURLConnection) url.openConnection();

c.setRequestMethod("POST");
c.setDoOutput(true);
c.connect();

ByteArrayOutputStream bos = new ByteArrayOutputStream();
InputStream is = c.getInputStream();

byte[] buffer = new byte[32000];
int len1 = 0;
boolean startaddr=false;
while ((len1 = is.read(buffer)) != -1)
{
    String b = new String(buffer);
    startaddr=true;
    bos.write(buffer, 0, len1);
}
startaddr=false;
bos.close();
is.close();

final String text = bos.toString();
...
Ich bekomme nie mehr als ca 15000 Zeichen ausgelesen, also nicht die komplette Seite. Ich hab schon an der Größe der Variable buffer rumgeschraubt, und das ganze in einen eigenen Thread verlegt. Nix hilft.
 
Zuletzt bearbeitet:
weil read -1 zurück gibt obwohl Daten eingelesen wurden
und bei der Puffergröße evtl. nur 2 Schleifendurchläufe er-
folgen :crying: k.A. - meine Downloadfunktion schaut so aus:

PHP:
[LEFT]InputStream in;
HttpResponse response = null; 
HttpClient client = new DefaultHttpClient(); 
HttpGet request = new HttpGet(urlupdate); 
request.addHeader("Cache-Control", "no-cache"); 
response = client.execute(request);
String fileName = "Update.apk";
 
if( response.getStatusLine().getStatusCode() == 200 )
{
in = response.getEntity().getContent();
 
FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_WORLD_READABLE); // Context.MODE_PRIVATE |
int read = 0, count = 0;
byte[] buffer = new byte[512];
BufferedInputStream bis = new BufferedInputStream((InputStream)in);
do
{
read = bis.read(buffer);
if(read > 0)
{
fos.write(buffer, 0, read);
count += read;
} 
} 
while(read != -1);
fos.close();
}
 
Danke, ich werd damit mal ein bisschen basteln
 
Zurück
Oben Unten