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

C# Discussion :

Appeler une url depuis une application


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 116
    Points : 63
    Points
    63
    Par défaut Appeler une url depuis une application
    Voilà mon propos je suis en train de créer une télécommande pour freebox en c#, l'api de la télécommande me dit par exemple que l'appuie sur la touche infos se fait en appelant l'url suivante : http://hd2.freebox.fr/pub/remote_control&key=info jusque là tout va bien mais j'ai une question de débutant comment en c# puis appeler cette url depuis une application console, WPF ou Silverlight ?

    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    La classe WebClient permet de faire des requêtes HTTP:

    http://msdn.microsoft.com/en-us/libr...webclient.aspx

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    effectivement j'ai donc fait ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                var infosUri = new Uri(_urlInfos);
                var infosRequest = WebRequest.Create(infosUri);
                var infosResponse = infosRequest.GetResponse();
                infosResponse.Close();
    ca fonctionne en application win32 mais ne fonctionne pas sous silverlight, il me demande de faire en asynchrone ???

  4. #4
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    En silverlight tu dois faire ça en asynchrone en utilisant DownloadStringAsync par exemple:

    http://msdn.microsoft.com/en-us/libr...eventargs.aspx

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    voilà ce que j'ai écrit :

    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
            public MainPage()
            {
                InitializeComponent();
            }
     
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                Uri infosUrl=new Uri(_urlInfos,UriKind.Absolute);
                HttpWebRequest infosReq = (HttpWebRequest) WebRequest.Create(infosUrl);
                infosReq.BeginGetResponse(new AsyncCallback(infosReqComplete), infosReq);
            }
     
            private void infosReqComplete(IAsyncResult ar)
            {
                //Dispatcher.BeginInvoke(() => status.Text = "Downloading...Done.");
                HttpWebRequest req = (HttpWebRequest) ar.AsyncState;
                HttpWebResponse res = (HttpWebResponse) req.EndGetResponse(ar);
    Mais il me mets un message d'erreur :

    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
    System.Security.SecurityException was unhandled by user code
      Message=""
      StackTrace:
           à System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
           à System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
           à SilverlightFreemote.MainPage.infosReqComplete(IAsyncResult ar)
           à System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClassd.<InvokeGetResponseCallback>b__b(Object state2)
           à System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)
           à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
           à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
           à System.Threading.ThreadPoolWorkQueue.Dispatch()
           à System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
      InnerException: System.Security.SecurityException
           Message=Erreur de sécurité.
           StackTrace:
                à System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
                à System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
                à System.Net.Browser.AsyncHelper.<>c__DisplayClass2.<BeginOnUI>b__0(Object sendState)
           InnerException:
    Je voulais mettre un crossdomain.xml et clientaccesspolicy.xml, mais je ne peux pas les mettre sur la freebox, quel

  6. #6
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Points : 8 538
    Points
    8 538
    Par défaut
    Citation Envoyé par sarapis Voir le message
    Je voulais mettre un crossdomain.xml et clientaccesspolicy.xml, mais je ne peux pas les mettre sur la freebox, quel
    Tu as trouvé le problème

    La seule solution si tu restes sur du SL et de passer en SL4 et d'installer l'appli en local (mode Out of browser) en mode full trust. Cela permettra de passer outre cette restriction de sécurité.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    Merci beaucoup pour ton aide c'est nickel

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

Discussions similaires

  1. [Windows Phone 8] [Debutant] Lancer le navigateur avec une url depuis une application
    Par krizentherm dans le forum Windows Phone
    Réponses: 3
    Dernier message: 06/04/2014, 12h39
  2. Charger une image depuis une url
    Par nicolofontana12 dans le forum Android
    Réponses: 12
    Dernier message: 26/10/2013, 19h21
  3. Réponses: 2
    Dernier message: 01/12/2008, 18h43
  4. Enregistrer une image depuis une url
    Par joeyinbox dans le forum Windows
    Réponses: 2
    Dernier message: 23/10/2006, 20h00
  5. [MySQL 5.0 InnoDB] Appeler une url depuis une ps
    Par Johan31 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 04/11/2004, 14h00

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