1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Kann ein Response zu groß sein?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Unicate, 27.01.2011.

  1. Unicate, 27.01.2011 #1
    Unicate

    Unicate Threadstarter Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Hallo alle zusammen!

    Ich mache einen einfachen HTTP Request (POST) auf einen Server. Der InputStream vom response geht direkt in einen saxparser. Der hört allerdings bei der hälfte der xml auf,
    die zurückkommen soll. Die xml ist um die 1000 Zeilen groß.
    Wenn ich den SELBEN Parser auf dem normalen Rechner laufen lasse ist alles ok.

    Was ist hier nicht ok?
    Ist die xml zu groß? - Wenn ja, wie kann ich das umgehen?
     
  2. swordi, 27.01.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    was heißt, "der hört bei der hälfte auf"

    bekommst dann einen ANR?
     
  3. Unicate, 27.01.2011 #3
    Unicate

    Unicate Threadstarter Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Naja die endDocument Funktion im ParserHandler wird eher aufgerufen, als der Parsing vorgang beendet ist. Kein ANR, da der Request asynchron ist.

    Auf dem PC geht das 1a, selber Handler.

    Hier mal der code für den request:

    PHP:
    HttpClient client = new DefaultHttpClient();
    HttpPost post = new HttpPost(url);
    post.addHeader("Connection""keep-alive");
    SessionIdRequest request = new SessionIdRequest();
    StringEntity content = new StringEntity(request.toString());
    content.setContentType("application/x-www-form-urlencoded");
    post.setEntity(content);
    HttpResponse response client.execute(post);
    if(
    response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {                
        
    SAXParserFactory factory SAXParserFactory.newInstance();
        
    // factory.setValidating(false); // uncommenting doesnt change anything
        // create SAX-parser...
        
    javax.xml.parsers.SAXParser parser factory.newSAXParser();
        
    // .. define our handler:
        
    SessionIdHandler handler = new SessionIdHandler();                
        
    // and parse:
        
    try {
            
    parser.parse(new InputSource(new  InputStreamReader(response.getEntity().getContent(), "ISO-8859-1")), handler);
            
    // hier kann per debugger gestoppt werden => keine Exception beim parsen
            
    handler.doSmth();
        } catch (
    Exception e) {
            
    Log.d(TAG"error while parsing");
        }
        
    }
    Der Code befindet sich in einer AsyncTask Klasse im "doInBackground"-Teil
     
    Zuletzt bearbeitet: 27.01.2011
  4. Unicate, 27.01.2011 #4
    Unicate

    Unicate Threadstarter Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Bitte vergesst die Frage ganz schnell...
    Falsche url...

    *peinlich*
     

Diese Seite empfehlen