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 :

Requête POST


Sujet :

Java ME

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 27
    Points
    27
    Par défaut Requête POST
    Bonjour,

    Voila j'aimerais envoyé des requêtes POST d'un téléphone portable vers un serveur web (ici 127.0.0.1).
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    if (c == _commandEnvoyer2)
    {
     
    try
    {
    http = (HttpConnection)Connector.open("?" + textField + ":22210");
    http.setRequestMethod(HttpConnection.POST);
     
     
     
    http.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
     
    outStrm = http.openOutputStream();
     
     
    byte data[] = ("type=test").getBytes();
    outStrm.write(data);
     
     
    data = ("&code=" + textbox.getString()).getBytes();
    outStrm.write(data);
     
    if (outStrm != null)
    outStrm.close();
    if (http != null)
    http.close();
     
    }
    catch (Exception e) {
     
    e.printStackTrace();
    }
     
    }
    Tous compile bien.
    Mais lorsque je lance mon programme sur l'emulateur et que j'envois mes requetes POST alors j'obtiens le message suivant :
    java.lang.IllegalArgumentException: Invalid protocol name
    Pourtant c'est bien le protocole http que j'utilise...

    J'ai vu ce tutoriel : http://kmdkaci.developpez.com/tutori...-site-web/#LVI

    J'ai bien désactiver les messages de confirmation comme ils disent.
    Toutefois, il faut paramétrer les permissions pour éviter les multiples messages de confirmations, notamment ceux relatifs à airtime. Pour cela, dans le programme WTK, il faut aller dans le menu : Edit/Préférences/Security puis dans la rubrique Security domain et choisir l'option minimum.
    Sa fonctionne l'envoit de requete http avec l'emulateur classique de J2ME wireless toolkit 2.2, notamment en 127.0.0.1 ?

    Merci d'avance,

  2. #2
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Salut

    Je crois que ton soucis vient de la :

    http = (HttpConnection)Connector.open("?" + textField + ":22210");

    Il te manque l'url ("127.0.0.1\tapageweb" + "?" + textField + ":22210");

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    J'obtiens toujours un : java.lang.IllegalArgumentException: Invalid protocol name
    C'est pas l'emulateur de J2ME qui ne prend pas en conte l'envoie de requête POST et donc le protocole HTTP ?

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Slt

    T'a essayer comme ca :

    http = (HttpConnection)Connector.open("http:\\127.0.0.1\tapageweb" + textField + ":22210");

    avec l'extension de la page web.

    ++

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    Salut,

    Je n'ai pas de fichiers, en realité c'est juste un serveur http que j'ai fais moi même. Il interprète pas le php.
    Mais quand je lui envoi des données avec un formulaire html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>titre</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	<body>
     
    <FORM method=post action="http://127.0.0.1:22210/">
    Type de fichier :
    <TABLE BORDER=0>
    <TR>
    	<TD>Fonction</TD>
    	<TD>
    	<SELECT name="type">
     
    		<OPTION VALUE="bat">.bat</OPTION>
    		<OPTION VALUE="vbs">.vbs</OPTION>
    	</SELECT>
    	</TD>
     
    </TR>
    <TR>
    	<TD>Code du script :</TD>
    	<TD>
    	<TEXTAREA rows="3" name="code">
     
    	</TEXTAREA>
    	</TD>
    </TR>
     
    <TR>
    	<TD COLSPAN=2>
    	<INPUT type="submit" value="Envoyer">
     
    	</TD>
    </TR>
    </TABLE>
    </FORM>
     
       </body>
    </html>
    Sa fonctionne très bien donc théoriquement sa devrait fonctionné avec le téléphone aussi.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 45
    Points : 27
    Points
    27
    Par défaut
    J'ai trouvé d'ou mon probléme venais.
    En faite je mettais l'adresse ip 127.0.0.1 alors qu'il fallait mettre http://127.0.0.1/ en paramètre a Connector.open.

    Maintenant j'ai un 2éme probléme quand je veus envoyé mes données sa me met comme message :

    Warning: To avoid potential deadlock, operations that may block, such as
    networking, should be performed in a different thread than the
    commandAction() handler.
    java.lang.SecurityException: Application not authorized to access the restricted API
    J'ai cherché sur internet et j'ai trouvé qu'il fallait réécrire le .jad et mettre les permissions, je l'ai fais mais rien ne change...

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 62
    Points : 43
    Points
    43
    Par défaut
    Non enfait il faut que tu utilise un thread pour evite de bloquer le telephone lors de lenvoie du post pour ce faire tu doit lui indiquer que ta class est Runnable comme ce ci :

    public class myClass extends MIDlet implements Runnable {

    ...

    }

    ensuite tu creer un void run ou la tu met tout le code du post et tu invoque le run avec la ligne suivante :

    new Thread(this).start();

    et la ca devrait marcher.

    ++

Discussions similaires

  1. Acquitter une requête POST sur la même connexion
    Par phaby dans le forum Langage
    Réponses: 2
    Dernier message: 18/04/2006, 10h59
  2. [XML] Réponse à la requête POST VIA XML
    Par cilv1 dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 01/02/2006, 11h18
  3. [Socket] Réponse à la requête POST
    Par cilv1 dans le forum Langage
    Réponses: 4
    Dernier message: 20/10/2005, 18h18
  4. Comment envoyer une requête POST via HTTP ?
    Par pdtor dans le forum C++
    Réponses: 2
    Dernier message: 13/09/2005, 05h54
  5. Analyse de code HTML en réponse a une requête post.
    Par ghost942 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 04/06/2005, 21h40

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