Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [java]risposta HTTP

  1. #1
    Utente di HTML.it L'avatar di bonobo
    Registrato dal
    Sep 2008
    Messaggi
    103

    [java]risposta HTTP

    ciao ragazzi..
    allora
    non riesco a fare una cosa abbastanza semplice e non riesco a capire dove sbaglio..
    allora faccio una richiesta http ad un sito che ovviamente mi risponde con header e corpo del messaggio nel mio caso una pagina html!
    vorrei mettere la risposta che leggo in una stringa..
    in modo da poter poi attraverso stringtokenizer,o altri metodi tirare fuori pezzetti di codice che mi interessano..
    faccio cosi...

    codice:
    int r; 
    String app="";
     while((r= is.read(buffer))>= 0)
    {
     app+=new String(buffer,0,r); 
    }
    funziona tutto e dentro app mi trovo tutta la risposta!..
    pero non riesco a fare lo stringtokenizer ad esempio...
    non so se ad esempio faccio

    codice:
    StringTokenizer tok=new StringTokenizer(app);
     System.out.println(tok.nextToken("\r\n\r\n"));
    dovrebeb dividermi l'header delle risposta dal corpo della risposta..perche il dopo extracarrige return,line feed lo si ha solo li..
    e invece mi fa un casino..
    perche??
    dove sbaglio?


    grazie a tutti

  2. #2
    StringTokenizer tok=new StringTokenizer(app); System.out.println(tok.nextToken("\r\n\r\n"));
    per come lo hai definito, lo StringTokenizer restituisce ogni sottostringa delimitata da '\n' o '\r'. Tra l'altro ciò che hai stritto equivale a scrivere:

    Codice PHP:
    tok.nextToken("\r\n"
    Per il tuo scopo puoi usare:

    Codice PHP:
    System.out.println(app.substring(0app.indexOf("\n\n"))); 
    oppure, più elegantemente il metodo split() di String:

    Codice PHP:
    String [] tokenized s.split("\n\n");
    System.out.println("Header:"+tokenized[0]);
    System.out.println("Body:"+tokenized[1]); 

  3. #3
    Utente di HTML.it L'avatar di bonobo
    Registrato dal
    Sep 2008
    Messaggi
    103
    Originariamente inviato da Santinizer
    per come lo hai definito, lo StringTokenizer restituisce ogni sottostringa delimitata da '\n' o '\r'. Tra l'altro ciò che hai stritto equivale a scrivere:

    Codice PHP:
    tok.nextToken("\r\n"
    Per il tuo scopo puoi usare:

    Codice PHP:
    System.out.println(app.substring(0app.indexOf("\n\n"))); 
    oppure, più elegantemente il metodo split() di String:

    Codice PHP:
    String [] tokenized s.split("\n\n");
    System.out.println("Header:"+tokenized[0]);
    System.out.println("Body:"+tokenized[1]); 
    ciao grazie mille per la risposta...
    ma scusa..ma se io scrivo...

    codice:
    System.out.println(tok.nextToken("ciccio"));
    mi prende tutte le sottostrighe delimitate dalla parola ciccio o no?

    e poi...l'header non finisce con "\r\n\r\n"?perche usi solo "\n\n"?

  4. #4
    Originariamente inviato da bonobo
    codice:
    System.out.println(tok.nextToken("ciccio"));
    mi prende tutte le sottostrighe delimitate dalla parola ciccio o no?
    no, dovrebbe prendere tutte le parole delimitate da 'c' o 'i' o 'o'.

    Originariamente inviato da bonobo
    e poi...l'header non finisce con "\r\n\r\n"?perche usi solo "\n\n"?
    si scusa, hai ragione, nello split usa '\r\n\r\n'. In genere '\r\n' e '\n' sono equivalenti. Cmq per capire la differenza tra '\n' e '\n\r' prova a dare un occhio qui

  5. #5
    Utente di HTML.it L'avatar di bonobo
    Registrato dal
    Sep 2008
    Messaggi
    103
    Originariamente inviato da Santinizer
    no, dovrebbe prendere tutte le parole delimitate da 'c' o 'i' o 'o'.
    azz...noooo!!
    e allora scusa...se io poi dovro cercare una parola al interno del codice...che so che è fra un tag ad esempio <prova>COSA CHE MI INTERESSA</prova>

    come faccio a prendere quel pezzo li? compreso fra i due tag?
    oppure anche solo dal primo tag in poi?..

    uso split?..

  6. #6
    Per quello che devi fare io ti consiglio di usare la libreria htmlparser. Dai un occhio anche a httpunit... ci potrebbe essere qualche classe utile.

    ciao

  7. #7
    Utente di HTML.it L'avatar di bonobo
    Registrato dal
    Sep 2008
    Messaggi
    103
    grazie mille ma preferirei usare le librerie standard di java..
    ora faccio un po di prove...
    poi al limite riscrivo qui...

    grazie del aiuto che mi hai dato a presto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.