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

Windows Mobile .NET Discussion :

Consommer un WebService en DATA/GPRS


Sujet :

Windows Mobile .NET

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 130
    Par défaut Consommer un WebService en DATA/GPRS
    Bonjour à tous,

    Je fais héberger un WebService sur un serveur distant avec une adresse public.
    Depuis mon touch HD j'ai une application qui consomme le WS.

    Quand je suis en WIFI, ou depuis ActiveSynch ça marche

    Quand j'utilise ma connexion data (SFR), ça ne fonctionne pas (WebException .... ) ... il lance la connexion DATA mais n'y parvient pas.

    probleme de proxy ?

    Merci de votre aide.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Proxy je ne pense pas car normalement tu as un accès au net sans reconfigurer Internet Explorer entre la connexion GPRS et la connexion WiFi.

    Tu peux nous mettre une copie de la description complète de l'exception ?
    Je soupçonne un TimeoutException car le ping du GPRS est assez lamentable + le taux de transfert.

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut
    Bonjour,

    J'ai le même problème.

    Mon web service est accessible sur mon application sur PDA avec ActiveSync et depuis l'extérieur en tapant la requête http.

    Quand j'essaye d'y accéder en GPRS, j'ai une WebException avec un code ProtocolError et un détail de ma HttpWebResponse dans lequel c'est écrit Forbidden.

    J'ai essayé d'utiliser HttpWebRequest pour interroger mon WebService avec juste une requête HTTP, et j'ai bien le résultat attendu.

    Mon WebService est généré avec l'éditeur de VS2008 et utilise la classe SoapHttpClientProtocol pour faire les requêtes.

    J'ai défini le timeout à -1 pour ne pas en tenir compte.

    Merci de votre aide.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Hmm il faudrait peut etre essayer de regarder la tete de la requete que le client WebService de Microsoft envoie a ton serveur ? Du moins si elle arrive jusqu'a ton serveur...

    Peux tu la comparer a celle que tu as envoyé via le HttpWebRequest ?

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut
    La requête SOAP envoyée par le web service n'arrive pas à mon serveur HTTP (apache) avec une connexion GPRS.

    En me connectant avec ActiveSync, j'ai les logs de connexion à apache sont les suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    -- HttpWebRequest
    192.168.40.44 - - [09/Jan/2009:10:17:26 +0100] "GET /socWeb/services/Scau/exportScau HTTP/1.1" 200 23037 "-" "-"
    -- SoapHttpClientProtocol
    192.168.40.44 - - [09/Jan/2009:10:17:41 +0100] "POST /socWeb/services/Scau HTTP/1.1" 200 23199 "-" "Mozilla/4.0 (compatible; MSIE 6.0; MS .NET CF Web Services Client Protocol 3.5.7283.0)"
    Et toujours avec la connexion ActiveSync, j'ai récupéré les messages réseau pour les requêtes

    Pour la requête HTTP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Hypertext Transfer Protocol
    	GET /socWeb/services/Scau/exportScau HTTP/1.1\r\n
    		Request Method: GET
    		Request URI: /socWeb/services/Scau/exportScau
    		Request Version: HTTP/1.1
    	Connection: Keep-Alive\r\n
    	Host: 192.168.41.10\r\n
    Pour la requête SOAP :

    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
     
    Hypertext Transfer Protocol
    	POST /socWeb/services/Scau HTTP/1.1\r\n
    		Request Method: POST
    		Request URI: /socWeb/services/Scau
    		Request Version: HTTP/1.1
    	User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; MS .NET CF Web Services Client Protocol 3.5.7283.0)\r\n
    	Cache-Control: No-Transform\r\n
    	SOAPAction: "http://com/soc/service/web/Scau/exportScau"\r\n
    	Content-Type: text/xml; charset=utf-8\r\n
    	Content-Length: 462
    	Connection: Keep-Alive\r\n
    	Expect: 100-continue\r\n
    	Host: 192.168.41.10\r\n
    eXtensible Markup Language
    	<?xml version="1.0" encoding="utf-8" ?>
    	<soap:Envelope
    		xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    		xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    		<soap:Header>
    			<AuthHeader xmlns="http://com/soc/service/web/Scau/">
    				<idPoste xmlns="">
    					7d2a5c8a-63f0-47df-9c6b-d81936200492
    				</idPoste>
    			</AuthHeader>
    		</soap:Header>
    		<soap:Body>
    			<exportScau xmlns="http://com/soc/service/web/Scau/"/>
    		</soap:Body>
    	</soap:Envelope>
    C'est mon message qui n'est pas bon ou SFR qui n'accepte pas les requêtes SOAP ?

  6. #6
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut
    Bon en fait, j'ai trouvé ma réponse tout seul...

    Je me connectait au réseau GPRS chez SFR par la connexion wap au lieu de la connecion web

    Désolé pour le temps perdu

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Pas de problème au moins c'est résolu !

  8. #8
    Invité de passage
    Inscrit en
    Mai 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 1
    Par défaut
    Salut,
    j'ai également un problème de webservice: lorsque je l'interroge en utilisant le device emulator (en mode "réseau") tout est OK.
    Quand je l'interroge avec le device emulator et en utilisant le Cell Emulator, tout est OK.
    En revanche, quand je l'installe sur mon HTC Touch et que je l'interroge en utilisant ma connexion DATA (j'ai pas essayé en wifi ou activesync) , j'obtiens comme message d'erreur: WebException
    La stacktrace donne ceci:

    [14:30:33] à System.Web.Services.Protocols.SoapHttpClientProtocol.doInvoke()
    à WeatherTodayPlugin.xxxxxxxxxx.CurrentWeather.ReturnToto()
    à WeatherTodayPlugin.WeatherTodayPlugin.GetWeather()
    à WeatherTodayPlugin.WeatherTodayPlugin.WeatherTodayPlugin_Click()
    à System.Windows.Forms.Control.OnClick()
    à System.Windows.Forms.Control.WnProc()
    à System.Windows.Forms.ContainerControl.WnProc()
    à System.Windows.Forms.Control._InternalWnProc()
    à ManagedTodayScreenItemHost.WindowHook.CallWindowProc()
    à ManagedTodayScreenItemHost.WindowHook.WndProc()
    à Microsoft.AGL.Forms.EVL.EnterMainLoop()
    à System.Windows.Forms.Application.Run()
    à ManagedTodayScreenItemHost.Program.Main()

    le webservice ne fait que retourner la chaine "TOTO" (en attendant de trouver une solution).

    Petite précision: mon opérateur téléphonie est SFR et j'utilise la connexion sl2sfr .

    Si quelqu'un a une idée du pourqui du comment de ce plantage (et éventuellement une solution toute prête ) je suis preneur.
    Merci.

  9. #9
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 35
    Par défaut
    Bonjour à tous.

    Je viens vers vous car je rencontre le même problème et je galère depuis quelques temps.

    En revanche je comprend pas trop la solution de MatCF
    Je me connectait au réseau GPRS chez SFR par la connexion wap au lieu de la connecion web
    Pour accéder au web sur le téléphone, on configure une connexion wap et pas web. Je me trompe ? Où est la différence ?

    Sinon comment faire pour utiliser ta solution MatCF.

    Merci d'avance

  10. #10
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut
    Citation Envoyé par Gab02 Voir le message
    Bonjour à tous.

    Je viens vers vous car je rencontre le même problème et je galère depuis quelques temps.

    En revanche je comprend pas trop la solution de MatCF


    Pour accéder au web sur le téléphone, on configure une connexion wap et pas web. Je me trompe ? Où est la différence ?

    Sinon comment faire pour utiliser ta solution MatCF.

    Merci d'avance
    J'avais trouvé un site qui donnait les configurations chez les différents opérateurs, mais il a été supprimé.

    Wap GPRS

    * Nom du Profil : WAP SFR GPRS
    * Point d'accès : wapsfr
    * Nom utilisateur : Aucun
    * Mot de passe : Aucun
    * Adresse IP Principale : 195.115.025.129
    * Numéro de port : 9201
    * Page d'accueil : http://wap.sfr.net

    Web SFR

    * Nom : WEB SFR GPRS
    * Point d'accès : websfr
    * Nom utilisateur : Aucun
    * Mot de passe : Aucun
    * Protocole réseau utilisé : TCP/IP
    * Adresse IP : Attribuée par le serveur
    * DNS primaire : 172.20.2.10
    * DNS secondaire : 194.6.128.4

    Les connexions wap et web sont configurées différemment chez SFR, même si on a accès au web avec la connexion wap

  11. #11
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 35
    Par défaut
    Merci pour tes infos.

    Mais je me pose une question :
    quand tu veux consommer un service web tu as juste besoin d'utiliser la webreference (avec une connexion établie automatiquement) ou tu as une connexion à établir avant ?

    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
     
    WebReference.Service1 test = new WebReference.Service1();
        try
        {            
             MessageBox.Show(test.AddInteger(10,20).ToString());
             lbldata.Text = "OK";
        }
        catch (System.Net.WebException ex)
        {
               lbldata.Text = ex.Response.ToString() + "\n";
               lbldata.Text += ex.Status.ToString() + "\n";
        }
    Comme il n'y a pas moyen avec la webreference, j'ai testé plusieurs méthodes pour accéder à serveur distant mais pas moyen. Quel sont les étapes manquante pour un SmartDevice ?
    J'ai même testé à partir d'une application Windows classic et ça fonction correctement.

    Voici le code dont je me suis inspiré

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
       using System;
        using System.Drawing;
        using System.Net;
        using System.Net.Sockets;
        using System.Windows.Forms;
        namespace ClientBase
        {
        public class Client : Form
        {
        private System.Windows.Forms.TextBox message;
        private System.Windows.Forms.Button send;
        private Socket socket = null;
        private IPEndPoint endPoint = null;
        private IPAddress ipServer = null;
        private int port = 999;
        public Client()
        {
        InitializeComponent();
        this.Closing += new System.ComponentModel.CancelEventHandler(Client_Closing);
        InitializeClient();
        Connect();
        }
        public static void Main()
        {
        Application.Run(new Client());
        }
        private void InitializeClient()
        {
        ipServer = IPAddress.Parse("127.0.0.1"); // Changer l'adresse du serveur
        endPoint = new IPEndPoint(ipServer, port);
        socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
        }
        private void Connect()
        {
        try
        {
        socket.Connect(endPoint);
        MessageBox.Show("Connexion au serveur OK");
        }
        catch(Exception e)
        {
        MessageBox.Show(e.Message);
        }
        }
        private void InitializeComponent()
        {
        this.message = new System.Windows.Forms.TextBox();
        this.send = new System.Windows.Forms.Button();
        this.SuspendLayout();
        //
        // message
        //
        this.message.Location = new System.Drawing.Point(24, 16);
        this.message.Name = "message";
        this.message.Size = new System.Drawing.Size(192, 20);
        this.message.TabIndex = 0;
        this.message.Text = "";
        //
        // send
        //
        this.send.Location = new System.Drawing.Point(240, 16);
        this.send.Name = "send";
        this.send.TabIndex = 1;
        this.send.Text = "Send";
        this.send.Click += new System.EventHandler(this.send_Click);
        //
        // Client
        //
        this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
        this.ClientSize = new System.Drawing.Size(376, 101);
        this.Controls.Add(this.send);
        this.Controls.Add(this.message);
        this.Name = "Client";
        this.ResumeLayout(false);
        }
        private void send_Click(object sender, System.EventArgs e)
        {
        SendMessage(message.Text);
        }
        void SendMessage(string msg)
        {
        try
        {
        byte[] temp = System.Text.Encoding.UTF8.GetBytes(msg);
        socket.Send(temp, SocketFlags.None);
        }
        catch(Exception e)
        {
        MessageBox.Show(e.ToString());
        }
        }
        private void Client_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
        if(socket != null && socket.Connected)
        {
        socket.Close();
        socket = null;
        }
        }
        }
        }
    J'ai testé ce même code pour un projet SmartDevice, il me dit que l'hôte ne répond pas ou pas convenablement.
    Que faire, que me manque t'il ? Je patauge depuis 2 semaine, à l'aide.

    merci d'avance pour vos lumières

  12. #12
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 35
    Par défaut
    j'ai essayé ta solution : utiliser le websfr mais connexion impossible je testerai sur le reseau orange pour voir.
    Web SFR

    * Nom : WEB SFR GPRS
    * Point d'accès : websfr
    * Nom utilisateur : Aucun
    * Mot de passe : Aucun
    * Protocole réseau utilisé : TCP/IP
    * Adresse IP : Attribuée par le serveur
    * DNS primaire : 172.20.2.10
    * DNS secondaire : 194.6.128.4
    Quand tu parle du protocole réseau tu dois le selectionner ou il y est automatiquement.

    merci d'avance pour ton aide

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

Discussions similaires

  1. [C#] Consommer un WebService sans savoir d'avance l'URL
    Par SoaB dans le forum Services Web
    Réponses: 7
    Dernier message: 20/02/2008, 18h11
  2. Consommer un webservice asp.net depuis soap::lite
    Par bleuerouge dans le forum Web
    Réponses: 0
    Dernier message: 11/01/2008, 16h17
  3. consommer des webservices : client standalone
    Par NullPointerException dans le forum Services Web
    Réponses: 1
    Dernier message: 07/01/2008, 17h26
  4. [CF][C#] Comment consommer un WebService sur PPC ?
    Par Jérôme Lambert dans le forum Windows Mobile
    Réponses: 1
    Dernier message: 21/02/2006, 12h04
  5. Consommer un WebService en C++
    Par FunnyDjo dans le forum MFC
    Réponses: 4
    Dernier message: 12/12/2005, 21h31

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