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

ASP.NET Discussion :

[3.5] Générer une requête POST (ou GET) Côté serveur


Sujet :

ASP.NET

  1. #1
    CUCARACHA
    Invité(e)
    Par défaut [3.5] Générer une requête POST (ou GET) Côté serveur
    Salut,

    J'ai besoin de contacter un web service rest côté serveur pendant que je traite une réponse sans perturber la réponse que je traite.

    Je pensais qu'il fallait utiliser HTTPWebRequest mais lorsque j'invoque l'aide il y a un indicateur Obsolète.

    Quelqu'un saurait quelle est la nouvelle classe ?

    D'avance merci

    Laurent
    Dernière modification par CUCARACHA ; 09/04/2008 à 12h09.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    L'indicateur obsolète est censé t'indiquer la nouvelle classe à utiliser

  3. #3
    CUCARACHA
    Invité(e)
    Par défaut G trouvé...
    Salut,

    J'ai trouvé, voici la solution que j'ai adopté :

    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
     
                    /*Envoi du résultat par MC Tel*/
     
                    //http://www.worldofasp.net/tut/WebRequest/Working_with_HttpWebRequest_and_HttpWebResponse_in_ASPNET_114.aspx
     
                    // Create a new WebRequest Object to the mentioned URL.
                    string strSMSMsg = "SITM, dernière lecture = " + sngValeur + " " + strUnite;
                    Uri oUri = new Uri("http://smsgateway.mctel.fr/cgi-bin/sendsms.cgi");
     
                    //http://www.smsfax.fr/pdf/Manuel%20Interface%20HTTP%20HTML%20VideoSMS.pdf
                    string strData = "";
                    strData += "Command=sendsms";
                    strData += "&Version=1.0";
                    strData += "&UserId=XXXXXXXXX";
                    strData += "&Password=xxxxxxx";
                    strData += "&TestMode=0";
                    strData += "&CompanyId=YYYYYYYY";
                    strData += "&CompanyPwd=yyyyyyyy";
                    strData += "&DestNum=" + Server.UrlEncode(strTelPatient);
                    strData += "&MsgContent=" + Server.UrlEncode(strSMSMsg);
                    strData += "&MsgType=S";
                    strData += "&ContentType=TEXT";
                    strData += "&Encoding=ISO8859-1";
                    strData += "&OptDeferred=0";
                    strData += "&OptDefDate=";
                    strData += "&OptDefTime=";
                    strData += "&OptExpire=";
                    strData += "&OptExpiryDate=";
                    strData += "&OptOptExpiryTime=";
                    strData += "&OptNotifOnSuccess=1";
                    strData += "&OptNotifOnError=1";
                    strData += "&OptNotifType=EMAIL";
                    strData += "&OptNotifAddress=" + Server.UrlEncode("zzzzz@zzzz.zzz");
                    strData += "&OptFlash=0";
                    strData += "&OptReplace=0";
                    strData += "&PrivateData=" + Server.UrlEncode("\"--------\"");
                    strData += "&PrivateReference=" + Server.UrlEncode("\"----\"");
                    strData += "&Originator=mctel";
                    strData += "&Udhi=0";
                    strData += "&ReplyEnabled=0";
                    strData += "&Priority=0";
                    strData += "&Sessionid=";
                    strData += "&Sessionstate=";
                    if (oUri.Scheme == Uri.UriSchemeHttp)
                    {
                        HttpWebRequest oHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(oUri);
                        oHttpWebRequest.Method = WebRequestMethods.Http.Post;
                        oHttpWebRequest.ContentLength = strData.Length;
                        oHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
                        oHttpWebRequest.Headers.Add("Accept-Charset: utf-8");
                        oHttpWebRequest.ContentLength = strData.Length;
     
                        StreamWriter oStreamWriter = new StreamWriter(oHttpWebRequest.GetRequestStream());
                        oStreamWriter.Write(strData);
                        oStreamWriter.Close();
     
                        HttpWebResponse oHttpWebResponse = (HttpWebResponse)oHttpWebRequest.GetResponse();
                        StreamReader oStreamReader = new StreamReader(oHttpWebResponse.GetResponseStream());
                        string strTmp = oStreamReader.ReadToEnd();
                        oHttpWebResponse.Close();
                    }
    En tous les cas, merci pour ta réponse.

    ++

    Laurent

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    StringBuilder quand on fait plus de deux concatenations (à moins que les performances ne soient pas prises en compte dans tes projets)
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Citation Envoyé par Louis-Guillaume Morand Voir le message
    StringBuilder quand on fait plus de deux concatenations (à moins que les performances ne soient pas prises en compte dans tes projets)
    Je croyais que le StringBuilder était implémenté implicitement dans ce cas là, c'est pas le cas?

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    je pense pas ou alors j'ai lu plein d'articles sur les performances qui étaient erronés

    blog avec des benchs
    http://weblogs.asp.net/jeff/archive/...15/214912.aspx
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  7. #7
    CUCARACHA
    Invité(e)
    Par défaut Vous inquietez pas pour les perfs...
    Re,

    Me acculpa... je vais me trancher mon dernier petit doigt pour m'autoflageller tellement c'est grave...

    Concernant les concaténations, j'imagine bien la perte énorme de vitesse après compilation.

    C'est un peu comme dire qu'une ferrari est pourrie parce-qu'il y a une crotte d'oiseau sur le toit.

    ++

    Laurent

  8. #8
    CUCARACHA
    Invité(e)
    Par défaut LOL
    Salut,

    Je viens de lire ses temps de réponse !

    Le mec arrive a atteindre 22 secondes pour concaténer 1000 mots ?

    A mon avis il a fait le test sur un pentium 1 en mode pas a pas avec un doigt cassé et la touche F10 en panne (l'antivirus devait scanner le disque dur) avec 250 Mo de RAM sous Vista.

    Ce bench c'est n'importe quoi !

    ++

    Laurent

  9. #9
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    @Laurent : tu t'es levé du mauvais pied ou t'as marché dans la crotte de pigeon sur ta ferrari? c'était pas une critique et je parle pas de ton code en entier juste du fait que tu as là un mauvais bout de code. Peut-être d'habitude, n'utilises-tu pas des String pour concatener.


    c'est simplement avec de petites choses qu'on code mieux. Bien sûr, les performances se comptent en millisecondes et ca peut sembler inutile comme çà (et je l'ai souvent cru) mais si un jour pour un client tu développes autre chose qu'un "simple"(niveau requirements de performance et je parle pas de temps réel) portail/CMS mais plutot une appli avec de lourds enregistrements dedans ou alors la moindre application financière, ces petites choses sont extrêment importantes.
    c'est comme si tu me disais que tu ne fais jamais de using quand t'instancie des objets dans une methode ou que tu n'utilise jamais String.IsNullOrEmpty plutot que faire un double test != null et != String.Empty ou encore que tu n'utilises pas String.Empty pour initialiser une string. Après tu fais ce que tu veux hein mais l'une des forces du .Net, c'est justement de pouvoir coder en ayant de bonne performances. Après, on peut coder comme en VB6, ca marche aussi bien.

    désolé mais je suis du genre à croire que les best practices, c'est pas pour faire joli

    ps: d'ailleurs, si y en a qui sont partant pour réunir des best practices de coding, ca m'intéresse car y a plein de choses que je connais pas. comme le fait de faire des boucles for decrementielles plutot qu'incrementielles, etc
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  10. #10
    CUCARACHA
    Invité(e)
    Par défaut Re
    Non mais je n'étais pas ennervé... Vous avez raison.

    Toutesfois le mec qui a fait ce bench a du mettre son ordinateur en veille pendant le test.

    ++

    Laurent

  11. #11
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 252
    Points
    28 252
    Par défaut
    Citation Envoyé par Laurent Jordi Voir le message
    Non mais je n'étais pas ennervé... Vous avez raison.

    Toutesfois le mec qui a fait ce bench a du mettre son ordinateur en veille pendant le test.

    ++

    Laurent
    c'est possible, meme datant de 2004, c'est beaucoup A CONDITION que ce soit des secondes. il ne le précise pas (d'ailleurs, 'est le problème du bench, l'unité manquante).

    ps, je vois encore deux soucis à ton code
    1- la longueur de l'url. la longueur max d'une URL n'est pas la même selon les navigateurs et les serveurs. il faut être sûr que ca ne dépasse jamais 2083 caractères ou alors privilégier le post

    2- ne pourrais-tu pas utiliser du POST justement vu que c'est un appel que tu fais toi même? parce que mettre le pwd dans l'url... ^^
    Après tu as p-e une page déjà existante marchant avec du GET que tu ne veux pas changer ou alors d'autres contraintes mais à première vue, ca semble un peu étonnant

    edit: j'ai trouvé un bon lien sur stringbuilder ou ca débat
    http://channel9.msdn.com/ShowPost.aspx?PostID=14932
    http://www.codeproject.com/KB/cs/Str...vs_String.aspx
    et ici, un expert dit que la contenation peut etre plus rapide que le stringbuilder (dans les commentaires)
    http://www.codeproject.com/KB/cs/string.aspx
    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  12. #12
    CUCARACHA
    Invité(e)
    Par défaut C'est du POST
    Re mais c'est du POST :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oHttpWebRequest.Method = WebRequestMethods.Http.Post;
    Le GET C'était l'entête du message, je l'Edite...

    ++

    Laurent

Discussions similaires

  1. Alimenter une requête POST ou GET avec paramètre
    Par yomismo dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 04/11/2013, 21h47
  2. Générer une requête SQL depuis un model physique
    Par Ryan Sheckler dans le forum Requêtes
    Réponses: 4
    Dernier message: 01/12/2005, 12h11
  3. Comment envoyer une requête POST via HTTP ?
    Par pdtor dans le forum C++
    Réponses: 2
    Dernier message: 13/09/2005, 05h54
  4. 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