Partage
  • Partager sur Facebook
  • Partager sur Twitter

projet silverlight

webclient

    26 avril 2011 à 14:23:39

    Bonjour,


    Voila je fais un RDA silverlight.
    J'ai crée une fichier xaml pour me connecter. Mais j'aimerais appeler un service de connexion que j'ai créer en PHP.
    J'ai crée une bibliothèque qui me permet de gérer les opération asynchrones.

    J'envoi un JSON a un script php. Pour cela j'utilise l'objet webcleint()
    Et le script me répond. Je souhaite soumettre ma réponse au serveur.
    Je développe avec visual studio. Donc avec celui-ci, je fais des points d'arrêt au endroit voulu, je passe bien par les points importants.
    Mais je n'arrive pas sur le même objet à garder la réponse du serveur.


    J'aurais besoin d'aide, je pense que j'ai un problème de thread. Mais j'arrive pas à le résoudre :

    Voila ma classe de requête web :

    // cette classe permet de d'executer des requêtes
    public class ServerWebReqClient
    	{
    
            // membres
            public Uri uriWebService { get; set; }
            public string method { get; set; }
            public string jsonData { get; set; }
            private string response;
            private string error;
    
            public ServerWebReqClient(Uri luri, string method, string jsonData)
            {
                this.uriWebService = luri;
                this.method = method;
                this.jsonData = jsonData;
                this.response = null;
                this.error = null;
            }
    
            // constcucteur simple
            public ServerWebReqClient()
            {
            }
    
            // je mets certain variable en lecture simple
            public string Response
            {
                get { return response; }
            }
    
    
            public string Error
            {
                get { return error; }
            }
    
            public bool demandeServeur()
            {
                WebClient client = new WebClient();
                client.UploadStringCompleted += new UploadStringCompletedEventHandler(client_UploadStringCompleted);
                client.UploadStringAsync(this.uriWebService, this.method, this.jsonData,this);
    
                return false;
            }
    
            // Méthode quand la requête a été envoyé
            private void client_UploadStringCompleted(object sender, UploadStringCompletedEventArgs response)
            {
                ServerWebReqClient client = response.UserState as ServerWebReqClient;
    
    
                if (response.Result.Equals(""))
                    return;
    
                Deployment.Current.Dispatcher.BeginInvoke(delegate()
                {
                    // Ici je met la réponse dans l'objet
                    this.response = response.Result;
                });
    
            }
    	}
    


    Et enfin voici ma classe authentification qui me permet de m'authetifié :

    public class Authentification
    	{
            public string host { get; set; }
            public string keyApi { get; set; }
            public string login { get; set; }
            public string password { get; set; }
    
    
            public string getJson<Typ>(Typ tabObject) where Typ : class
            {
                return JsonFormatString.ObjectToJson<Typ>(tabObject);
            }
    
    
    
            public bool connexion()
            {
                //  J'appelle mon objet de requête web
                ServerWebReqClient srvWebLocalHost = new ServerWebReqClient()
                {
                    jsonData = this.getJson<Authentification>(this),
                    method = "POST",
                    uriWebService = new Uri("http://localhost/projectWeb2/service/serviceAUTH.php")
                };
    
                // Je lance la requête
                srvWebLocalHost.demandeServeur();
    
                // Ici quand je fais un point d'arrêt
                // srvWebLocalHost n'a pas réponse alors que je l'ai mis lors de ma demandeServeur
                if (srvWebLocalHost.Error != null) return false;
    
                // Ici il déclare que mon Response a à nullexception
                // Donc je regarde et e vois effectivement il est NULL
                MessageBox.Show(srvWebLocalHost.Response);
    
                return true;
            }
    



    Je ne vois pas donc pas mon problème.
    • Partager sur Facebook
    • Partager sur Twitter

    projet silverlight

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown