IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java ME Discussion :

HttpConnection et DataOutputStream/DataInputStream


Sujet :

Java ME

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 45
    Par défaut HttpConnection et DataOutputStream/DataInputStream
    Bonjour à tous,

    Je rencontre un problème avec l'utilisation du DataOutputStream/DataInputStream lorsque j'essaye d'envoyer des données à une servlet.

    1- Je ne rencontre pas ce problème sur l'émulateur mais seulement qd je teste sur un téléphone, sur réseau SFR (pas essayer avec un autre)

    2- le problème se situe alors au niveau de la Servlet lorsque le DataInputStream din essaye de faire un readUTF(). J'ai alors :
    java.io.EOFException
    at java.io.DataInputStream.readUnsignedShort(DataInputStream.java:323)
    at java.io.DataInputStream.readUTF(DataInputStream.java:572)
    at java.io.DataInputStream.readUTF(DataInputStream.java:547)
    at ServletMobile.doGet(ServletMobile.java:71)

    3- Si je tente seulement un connection à la servlet et un envoi de texte au téléphone depuis la servlet (DataOutput depuis la servlet et DataInput sur le téléphone (cad l'inverse de ci-dessus) ca marche sans problème ....

    Quelqu'un a til déjà à faire à cette situation ? Quelqu'un comprend il le problème ?

    D'avance Merci,

    Olivier

    Côté Mobile


    import java.io.*;
    import javax.microedition.io.*;
    import javax.microedition.lcdui.*;
    import javax.microedition.midlet.*;

    /**
    * An example MIDlet to invoke a CGI script.
    */

    public class ThirdExample extends MIDlet {

    private Display display;

    String url = "http://blablabalb/Mobile";

    public ThirdExample() {
    display = Display.getDisplay(this);
    }

    /**
    * Initialization. Invoked when we activate the MIDlet.
    */
    public void startApp() {
    try {
    getGrade(url);
    } catch (IOException e) {
    System.out.println("IOException " + e);
    e.printStackTrace();
    }
    }

    /**
    * Pause, discontinue ....
    */
    public void pauseApp() {

    }

    /**
    * Destroy must cleanup everything.
    */
    public void destroyApp(boolean unconditional) {
    }


    /**
    * Retrieve a grade....
    */

    void getGrade(String url) throws IOException {
    HttpConnection c = null;
    InputStream is = null;
    DataInputStream din = null;
    OutputStream os = null;
    DataOutputStream dout = null;
    StringBuffer b = new StringBuffer();
    TextBox t = null;
    int x = 5, y =7;
    try {
    c = (HttpConnection)Connector.open(url);
    c.setRequestMethod(HttpConnection.GET);
    c.setRequestProperty("IF-Modified-Since", "10 Nov 2000 17:29:12 GMT");
    c.setRequestProperty("User-Agent","Profile/MIDP-1.0 Confirguration/CLDC-1.0");
    c.setRequestProperty("Content-Language", "en-CA");
    os = c.openOutputStream();
    dout = new DataOutputStream(os);
    dout.writeUTF("le ciel est beau les amis");

    is = c.openDataInputStream();
    din = new DataInputStream(is);
    String bString = din.readUTF();
    t = new TextBox("Final Grades", bString, 1024, 0);
    } finally {
    if(is!= null) {
    is.close();
    }
    if(os != null) {
    os.close();
    }
    if(c != null) {
    c.close();
    }
    }
    display.setCurrent(t);
    }
    }
    Côté Servlet

    public class ServletMobile extends HttpServlet {

    /**
    * 123
    */
    private static final long serialVersionUID = 1L;
    public static final String BINARY = "application/octet-stream";
    private static final int UTF = 0;
    private static final int INT = 1;


    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //création de la session si besoin

    System.out.println("recu !!!");


    InputStream in = request.getInputStream();
    DataInputStream din = new DataInputStream(in);
    System.out.println(din.readUTF());

    OutputStream out = response.getOutputStream();
    DataOutputStream dout = new DataOutputStream(out);
    dout.writeUTF("ben la ca a marche faut voir");


    if (dout !=null){
    try{
    dout.close();
    }catch(IOException e){}
    }
    if ( out != null){
    try{
    out.close();
    }catch(IOException e){}
    }

    System.out.println("fin !!!");
    }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 45
    Par défaut Le problème vient du réseau SFR
    Je viens de trouver un portable Orange et cette petite appli de test marche...Le problème vient du réseau SFR.

    Est ce que quelqu'un a déjà eut ce problème et sait comment le contourner ?

    Cordialement,

    Olivier

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2005
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 79
    Par défaut
    Le problème n'est pas l'opérateur (SFR ou autre) mais le type de connexion que tu utilises sur ces mobiles. EDGE, GPRS, UMTS ou Wi-Fi ?

    Il faut voir aussi le profil et la configuration du mobile (CLDC/MIDP).

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 45
    Par défaut Les config et les connexions
    Les portables utilisées sont tous au moins midp 2.0 et CLDC 1.0 et j'avais mis l'appli en midp 2.0 CLDC 1.0

    Les portables que j'avais sous la main sont un sony ericson W300 avec Orange (edge) , un Z530i (gprs) avec SFR et un samsung L760 (UMTS) (SFR aussi)

    D'après ton post le problème viendrait de la configuration de connection sous GRPS et UMTS. Comment configurer tout cela ?

    J'ai farfouiller un peu pour le samsung dans les mode de connexion et il y un mode spécial java avec ne connection en HTTP et une adresse de connection laissé vide. J'ai vérifié c'est bien ce dernier qu'utilise mon application.

    Je réinsiste sur le fait qu'avec SFR quoiqu'il arrive je me connecte au serveur mais je ne peux pas envoyé de données depuis le téléphone vers le serveur. Par contre je peux envoyé des données depuis le serveur vers le téléphone.

    D'avance Merci,

    Olivier

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 45
    Par défaut HIIIIIIIIIIIIII
    Le problème venait du fait que j'utilisez un GET au lieu d'un post...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. DataInputStream // DataOutputStream
    Par superstarz dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 1
    Dernier message: 09/06/2011, 18h43
  2. Réponses: 3
    Dernier message: 22/07/2009, 19h09
  3. Réponses: 2
    Dernier message: 27/10/2006, 15h35
  4. DataInputStream lire au fur et à mesure
    Par akrobat dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 14/06/2006, 15h39
  5. httpConnection en J2ME
    Par noutnout53 dans le forum Java ME
    Réponses: 1
    Dernier message: 24/02/2006, 18h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo