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

Web & réseau Delphi Discussion :

http request en Delphi


Sujet :

Web & réseau Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 74
    Points : 46
    Points
    46
    Par défaut http request en Delphi
    Bonjour,
    J'ai un script vbs qui fait cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Set HttpReq = CreateObject("MSXML2.XMLHTTP")
      HttpReq.Open "POST", "http://Admin:ObsChili2017@192.168.52.150/ons.cgi?led=0001100000000000", False
      HttpReq.send
    Je souhaiterais faire la même chose en Delphi, j'ai essayé cela, mais cela ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var
      oXMLHTTP: OleVariant;
     
    ....
     
        oXMLHTTP := CreateOleObject('MSXML2.XMLHTTP');
        oXMLHTTP.open('POST', 'http://Admin:ObsChili2017@192.168.52.150/ons.cgi?led=0001100000000000', False);
        oXMLHTTP.send;
        oXMLHTTP.free;
    Des idées?
    Merci

  2. #2
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    pourquoi vouloir passer par OLE pour faire des trucs qui sont disponibles sous forme de composants (TNetHTTPClient) ou de classes (THTTPClient) ?

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    En complément de l'excellente réponse de pprem.
    https://docwiki.embarcadero.com/RADS...an_HTTP_Client

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    outre l'usage d'un des nombres composants HTTP, il manque sans doute un CoInitialize()
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    Pourquoi ne pas utiliser les composants HTTP, car je suis nul en programmation web, autant je suis à l'aise dans des composants COM, du multitache..etc Autant dès que je vois HTTP, je blêmis, si je trouve un exemple facile de ce que je veux faire, cad faire un POST à http://Admin:ObsChili2017@192.168.52...01100000000000, je prends tout de suite. Le code que j'ai écris au dessus n'est qu'un copié collé de ce que j'ai vu sur un site.
    Michel

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    Je viens d'essayer un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        HTTPClient := THTTPClient.Create;
        HTTPClient.Post('http://Admin:ObsChili2017@192.168.52.150/ons.cgi?led=0001100000000000', false);
    Évidement cela ne marche pas car la méthode Post nécessite autre chose que mon false!!

  7. #7
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par michastro Voir le message
    Je viens d'essayer un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        HTTPClient := THTTPClient.Create;
        HTTPClient.Post('http://Admin:ObsChili2017@192.168.52.150/ons.cgi?led=0001100000000000', false);
    Évidement cela ne marche pas car la méthode Post nécessite autre chose que mon false!!
    Oui, c'est un peu logique : c'est pas juste en changeant le nom de l'appel que tu vas te retrouver avec la même chose, il fait quoi le false dans l'appel initial ?

    Regarde APICoursesUpload sur https://github.com/DeveloppeurPascal...steCourses.pas
    Ca devrait être assez lisible pour que tu modifies ton appel avec la bonne façon de faire.

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    https://learn.microsoft.com/en-us/pr...57849(v=vs.85)

    varAsync[optional]
    A Boolean indicator of whether the call is asynchronous. The default is True (the call returns immediately). If set to True, attach an onreadystatechange property callback so that you can tell when the send call has completed.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 74
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    J'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        HTTPClient := THTTPClient.Create;
        HTTPClient.Get('http://Admin:ObsChili2017@192.168.52.150/ons.cgi?led=0001100000000000');
    Et ça marche, je peux commander mon IP Switch. Je ne sais même pas pourquoi ça marche. Post et Get??
    Michel

  10. #10
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par michastro Voir le message
    Bonjour,
    J'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        HTTPClient := THTTPClient.Create;
        HTTPClient.Get('http://Admin:ObsChili2017@192.168.52.150/ons.cgi?led=0001100000000000');
    Et ça marche, je peux commander mon IP Switch. Je ne sais même pas pourquoi ça marche. Post et Get??
    Michel
    ça fonctionne probablement parce que le serveur web à l'autre bout regarde les deux au lieu de choisir en GET ou POST (ce qui d'une manière générale est une mauvaise pratique de programmation web et la porte d'accès à des failles de sécurité, mais passons)

  11. #11
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par michastro Voir le message
    Bonjour,
    J'ai essayé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        HTTPClient := THTTPClient.Create;
        HTTPClient.Get('http://Admin:ObsChili2017@192.168.52.150/ons.cgi?led=0001100000000000');
    Et ça marche, je peux commander mon IP Switch. Je ne sais même pas pourquoi ça marche. Post et Get??
    Michel
    GET est généralement utilisé pour obtenir une ressource avec éventuellement des paramètres dans l'URL "?param1=value&parm2=valu2", dans ton cas led = 0001100000000000

    POST est généralement utilisé pour envoyer des données plus volumineuses (un formulaire, un fichier)...

    je dit "généralement" car dans REST, les méthodes reflètent surtout le mode d'accès. GET je lis, POST j'ajoute, PUT de mets à jour et DELETE je supprime.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. [C#] [WebServices] Http Request et SOAP
    Par Piolet dans le forum Windows Forms
    Réponses: 17
    Dernier message: 02/02/2009, 17h42
  2. [JMeter] HTTP request avec des parameters différents
    Par pmartin8 dans le forum Tests et Performance
    Réponses: 2
    Dernier message: 18/09/2006, 14h40
  3. XML Http Request
    Par ouam81 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/06/2006, 19h25
  4. HTTP request failed
    Par claralavraie dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/05/2006, 11h16

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