Kann ein Response zu groß sein?

  • 3 Antworten
  • Neuester Beitrag
Diskutiere Kann ein Response zu groß sein? im Android App Entwicklung im Bereich Betriebssysteme & Apps.
U

Unicate

Erfahrenes Mitglied
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?
 
S

swordi

Lexikon
was heißt, "der hört bei der hälfte auf"

bekommst dann einen ANR?
 
U

Unicate

Erfahrenes Mitglied
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:
U

Unicate

Erfahrenes Mitglied
Bitte vergesst die Frage ganz schnell...
Falsche url...

*peinlich*
 
Ähnliche Themen - Kann ein Response zu groß sein? Antworten Datum
12
Ähnliche Themen
HTTP GET ohne Response