CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 11 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 6 su 6
Discussione:

problema nella ricezione di file dal server

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    problema nella ricezione di file dal server

    Buongiorno ragazzi.
    Sto tendando di ricevere due file provenienti da un server al mio client android (l'SDK per ora).
    Il processo inverso cioè l'invio di un file dal client android al server funziona alla perfezione.
    Quello che volevo fare ora è andare a ricevere dal server due file e salvarli sulla sd virtuale dell'sdk.
    Questo è il mio server:

  2.  
  3. #2
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    e questa è la mia classe client:


    Per ora sul client sto cercando di andare a salvarmi su sd solo il file articoli.xml ricevuto dal server ma quello che accade che in sd
    ho un file articoli.xml vuoto e non riesco a capire come mai...
    vi ringrazio ciao...


    nel LOGCAT a volte ho il seguente errore:
    11-13 14:43:46.679: ERROR/TCP(3678): S: Error
    11-13 14:43:46.679: ERROR/TCP(3678): java.lang.ArrayIndexOutOfBoundsException: Offset out of bounds : -1
    11-13 14:43:46.679: ERROR/TCP(3678): at org.apache.harmony.luni.net.SocketInputStream.read (SocketInputStream.java:82)
    11-13 14:43:46.679: ERROR/TCP(3678): at ch.egsolutions.databasetutorial.TCPClient.run(TCPC lient.java:71)
    11-13 14:43:46.679: ERROR/TCP(3678): at java.lang.Thread.run(Thread.java:1096)

  4. #3
    Baby Droid


    Registrato dal
    Dec 2010
    Messaggi
    3

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    ciao senti hai risolto il tuo problema?? io ne ho uno simile.. nel senso che devo inviare una stringa xml ad un web server... il fatto del mio problema è che se devo ricevere la stessa stringa dal web server mi arriva quando faccio la richiesta post tramite outputstream mi da un errore lato server del genere :
    Error on line -1 of document : Premature end of file. Nested exception: Premature end of file.
    ho debuggato lato server e ho visto che il body del messaggio che arriva da android è null... non so se ci sono particolari problemi con outputstream visto che provado lo stesso codice al di fuori da android il tutto funziona... mi serve una mano urgente perchè devo terminare questo programma per un esame all'università!!! Grazie

  5. #4
    Androidiano


    Registrato dal
    Sep 2010
    Messaggi
    53

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ciao.
    Il mio problema l'ho risolto.
    Riesco ad inviare file ad un client android e a salvarli sulla sd, dopo che il client android (il telefono) stesso invia una stringa al server del tipo "INVIAMI IL FILE EXAMPLE.XML".
    Il server la interpreta ed esegue il relativo thread.

    Questo è quello che faccio lato server:


    Lato android mi sono creato un thread che poi nell'activity chiamo.
    E' il seguente:


    In questo modo funziona tutto alla perfezione.
    In pratica è una sorta di protocollo di comunicazione tra client e server.
    La tua eccezione mi suona strana. Non mi è mai capitata...prova a vedere il mio codice poi fammi sapere...io sarò di rientro a casa per le 17.30 quindi prima non potrò rispondere.
    ciao

  6. #5
    Baby Droid


    Registrato dal
    Dec 2010
    Messaggi
    3

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    grazie provo con il printWriter vediamo che cosa succede.. grazie mille...

  7. #6
    Baby Droid


    Registrato dal
    Dec 2010
    Messaggi
    3

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    ciao scusami ancora ma non riesco a farlo funzionare.. ti spiego quello che devo fare nel caso mi potresti dare una mano.. allora io ho da una parte un web server DAL che praticamente accetta una stringa xml, (tipo per esempio prodotti, clienti, fornitori..)se devo leggere dal web server il tutto funziona benissimo, quindi riesco a reperire i prodotti presenti al suo interno se da android mi creo un nuovo prodotto e quindi un nuovo xml quando lo vado a postare mi dice lato server:
    Error on line -1 of document : Premature end of file. Nested exception: Premature end of file.
    ho trovato la servlet che gestisce lo stream in input lato server e mi sono fatto stampare il flusso di dati che dovrebbe arrivare... STAMPA null.. a sto punto penso che da android non venga inviato bene la stringa.. ti posto sotto i metodi che fanno il post:

    public static void doContentRequest(String wsPart, String content, int expectedResponse,
    String expectedContent, String method,String user,String paswd) throws Exception {
    try {
    final HttpURLConnection hc = createConnection(wsPart, method,user,paswd);
    final OutputStream os = hc.getOutputStream();

    byte [] tmp=content.getBytes();
    for(int i=0;i<tmp.length;i++){
    System.out.println("tpm["+i+"]="+Byte.toString(tmp[i]));
    }
    os.write(content.getBytes("UTF-8"));
    os.flush();
    os.close();
    hc.connect();

    hc.getResponseCode();


    } catch (final Exception e) {
    //Log.i("Entra in err","errore");
    throw new Exception(e);
    }

    protected static HttpURLConnection createConnection(String wsPart, String method,final String LOGIN,final String PWD) throws Exception {
    Authenticator.setDefault(new Authenticator() {
    @Override
    protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(LOGIN, PWD.toCharArray());
    }
    });
    //log.debug(method + ": " + getOpenbravoURL() + wsPart);
    final URL url = new URL(baseUrl + wsPart);
    final HttpURLConnection hc = (HttpURLConnection) url.openConnection();

    hc.setRequestMethod(method);
    hc.setAllowUserInteraction(false);
    hc.setDefaultUseCaches(false);
    hc.setDoOutput(true);
    hc.setDoInput(true);
    hc.setInstanceFollowRedirects(true);
    hc.setUseCaches(false);
    hc.setRequestProperty("Content-Type", "text/xml");


    return hc;
    }

    }

    allora questi due metodi provati al di fuori da android vanno benissimo...
    se eseguo l'activiti non va un tubo!!! secondo te??? cosa potrei fare?? come risolvere?? sono bloccato è un progetto per il mio ultimo esame all'universtà... grazie mille!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy