none
HTTP requette, webservice RRS feed

  • Question

  • Bonjour,

    Je souhaiterais accéder à une webService depuis mon application Metro.

    Je dois d'abord lui envoyé des données XML et ensuite réceptionner sa réponse en XML toujours.

    Je n'arrive pas à lui envoyer des données.

    J'ai essayé ceci:

                WebRequest wReq = WebRequest.Create("http://X.X.X.X:X/Servlet/MyAction.do");
                HttpWebRequest httpReq = (HttpWebRequest)wReq;
                httpReq.Method = "POST";
                Stream sendStream = await httpReq.GetRequestStreamAsync();
                StreamWriter strmWrtr = new StreamWriter(sendStream);
                strmWrtr.Write("MES DONNEES");

    En java j'utilisais:

                url = new URL("http://X.X.X.X:X/Servlet/Action.do");
                URLConnection con =  url.openConnection();

                con.setDoInput(true);
                con.setDoOutput(true);

    Et con.getOutputStream(). Je ne trouve pas d'équivalent en C# .net

    Je vous remercie par avance

    lundi 15 avril 2013 13:36

Réponses

  • Bonjour,

    Voici un exemple de code :

    var request = GetHttpWebRequest(url);
    request.Method = "POST";
    request.ContentType = "text/xml;charset=utf-8";
    
    if (!string.IsNullOrWhiteSpace(content))
    {
        using (var postStream = await request.GetRequestStreamAsync())
        {
            var postBytes = Encoding.UTF8.GetBytes(content);
    
            await postStream.WriteAsync(postBytes, 0, postBytes.Length);
            await postStream.FlushAsync();
        }
    }


    Jonathan ANTOINE - Découvrez mon livre sur MVVM: http://goo.gl/N6Tmn - http://www.jonathanantoine.com

    mardi 16 avril 2013 09:12
    Modérateur
  • Merci pour votre réponse,

    Je venais de trouver une solution autre que la votre:

    HttpClient client = new HttpClient();

    HttpContent content = new StringContent(string.Format("mon texte en xml")); HttpResponseMessage response = await client.PostAsync("http://X.X.X.X:X/Servlet/Action.do", content); response.EnsureSuccessStatusCode(); string responseBodyAsText = await response.Content.ReadAsStringAsync();


    Je vais tester votre solution aussi :)

    • Marqué comme réponse Colaly mardi 16 avril 2013 09:39
    mardi 16 avril 2013 09:39

Toutes les réponses

  • Bonjour,

    Voici un exemple de code :

    var request = GetHttpWebRequest(url);
    request.Method = "POST";
    request.ContentType = "text/xml;charset=utf-8";
    
    if (!string.IsNullOrWhiteSpace(content))
    {
        using (var postStream = await request.GetRequestStreamAsync())
        {
            var postBytes = Encoding.UTF8.GetBytes(content);
    
            await postStream.WriteAsync(postBytes, 0, postBytes.Length);
            await postStream.FlushAsync();
        }
    }


    Jonathan ANTOINE - Découvrez mon livre sur MVVM: http://goo.gl/N6Tmn - http://www.jonathanantoine.com

    mardi 16 avril 2013 09:12
    Modérateur
  • Merci pour votre réponse,

    Je venais de trouver une solution autre que la votre:

    HttpClient client = new HttpClient();

    HttpContent content = new StringContent(string.Format("mon texte en xml")); HttpResponseMessage response = await client.PostAsync("http://X.X.X.X:X/Servlet/Action.do", content); response.EnsureSuccessStatusCode(); string responseBodyAsText = await response.Content.ReadAsStringAsync();


    Je vais tester votre solution aussi :)

    • Marqué comme réponse Colaly mardi 16 avril 2013 09:39
    mardi 16 avril 2013 09:39