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 Perl Discussion :

Erreur de requete - Webservice en PERL


Sujet :

Web Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Erreur de requete - Webservice en PERL
    Bonjour,

    Je suis actuellement sur un projet de création d'un service Web à partir d'un code métier déja créé (PERL). Etant totalement débutant à ce sujet, j'ai décidé de tester un tout petit service Web. J'ai codé quelques méthodes en PERL, puis codé un appel du service Web. Le problème est qu'il me dit que ma requête n'est pas valide et j'avoue que je ne comprends pas d'où ça vient. J'ai dû commencer à coder pour mon projet et j'ai été confronté au même problème donc je n'ai pas dû vraiment comprendre tout au sujet des services Web lol. voici le code de mon test.


    COTE SERVEUR
    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
     
    #!/usr/local/bin/perl -w
     
     
    use strict;
    use warnings ;
    use CGI ':standard';
    use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
     
    use SOAP::Transport::HTTP ;
     
    #---------------------------------------------
    # WEB SERVICE
    #---------------------------------------------
     
     
    my $cgi = SOAP::Transport::HTTP::CGI
    	-> dispatch_to('calculatrice')
    	-> handle;
     
    #----------------------------------------------
    # PACKAGE PERL - MODULE
    #----------------------------------------------
     
    package calculatrice ;
     
    	## methodes
     
    	sub soustraction{
     
    		my($x,$y) = @_ ;
    		my $results = $x - $y ;
    		print ("le resultat est : ".$results."\n") ;
    	}
     
     
    	sub addition{
     
    		my ($a,$b) = @_ ;
    		my $resulta = $a + $b ;
    		print ("le resultat est : ".$resulta."\n") ;
    	}
     
    	sub multiplication{
     
    		my ($c,$d) = @_ ;
    		my $resultm = $c * $d ;
    		print ("le resultat est : ".$resultm."\n") ;
    	}
    COTE CLIENT
    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
     
    #!/usr/local/bin/perl -w
     
     
    use strict;
    use warnings ;
    use CGI ':standard';
    #use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
     
    use SOAP::Lite;
    SOAP::Lite->import(+trace => qw(debug));
     
    #--------------------------------------
    # APPEL DU WEB SERVICE
    #--------------------------------------
     
    print ("#############");
    print SOAP::Lite
        -> uri('http://localhost/calculatrice')
        -> proxy('http://www-cache:3128/')
        -> addition(3,2)
        -> result;
    print "\n";
     
    print ("#############");
    Voici ce que je reçois comme erreur (la ligne 47 de mon code client c'est print SOAP::LITE)

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    [jpellen@u900-bdd-1-85-6983:~/workspace/WS_test/cgi-bin]$  ./calculatrice_client.pl 
    SOAP::Transport::HTTP::Client::send_receive: POST http://www-cache:3128/ HTTP/1.1
    Accept: text/xml
    Accept: multipart/*
    Accept: application/soap
    Content-Length: 512
    Content-Type: text/xml; charset=utf-8
    SOAPAction: "http://localhost/calculatrice#addition"
     
    <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><addition xmlns="http://localhost/calculatrice"><c-gensym3 xsi:type="xsd:int">3</c-gensym3><c-gensym5 xsi:type="xsd:int">2</c-gensym5></addition></soap:Body></soap:Envelope>
    SOAP::Transport::HTTP::Client::send_receive: HTTP/1.0 400 Bad Request
    Connection: close
    Date: Thu, 14 Jan 2010 10:15:10 GMT
    Via: 1.0 www-cache2.curie.fr:3128 (squid/2.7.STABLE6-20090401)
    Server: squid/2.7.STABLE6-20090401
    Content-Length: 2379
    Content-Type: text/html
    Content-Type: text/html; charset=iso-8859-1
    Client-Date: Thu, 14 Jan 2010 10:15:10 GMT
    Client-Peer: 10.3.0.200:3128
    Client-Response-Num: 1
    Title: ERREUR�: L'URL demand�e n'a pu �tre charg
    X-Cache: MISS from www-cache.curie.fr
    X-Cache-Lookup: NONE from www-cache.curie.fr:3128
    X-Squid-Error: ERR_INVALID_REQ 0
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    <TITLE>ERREUR&nbsp;: L'URL demand&eacute;e n'a pu &ecirc;tre charg&eacute;e</TITLE>
    <STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
    </HEAD><BODY>
    <H1>ERREUR</H1>
    <H2>L'URL demand&eacute;e n'a pu &ecirc;tre charg&eacute;e</H2>
    <HR noshade size="1px">
    <P>
    En essayant de traiter la requ&ecirc;te&nbsp;:
    <PRE>
    POST / HTTP/1.1
    TE: deflate,gzip;q=0.3
    Connection: TE, close
    Accept: text/xml
    Accept: multipart/*
    Accept: application/soap
    Host: www-cache:3128
    User-Agent: SOAP::Lite/Perl/0.710.08
    Content-Length: 512
    Content-Type: text/xml; charset=utf-8
    SOAPAction: &quot;http://localhost/calculatrice#addition&quot;
     
    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;soap:Envelope xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:soapenc=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; soap:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&gt;&lt;soap:Body&gt;&lt;addition xmlns=&quot;http://localhost/calculatrice&quot;&gt;&lt;c-gensym3 xsi:type=&quot;xsd:int&quot;&gt;3&lt;/c-gensym3&gt;&lt;c-gensym5 xsi:type=&quot;xsd:int&quot;&gt;2&lt;/c-gensym5&gt;&lt;/addition&gt;&lt;/soap:Body&gt;&lt;/soap:Envelope&gt;
    </PRE>
    <P>
    L'erreur suivante a &eacute;t&eacute; rencontr&eacute;e&nbsp;:
    <UL>
    <LI>
    <STRONG>
    Requ&ecirc;te invalide
    </STRONG>
    </UL>
     
    <P>
    Quelque chose est invalide dans la requ&eacute;te HTTP. Probl&egrave;mes envisageables&nbsp;:
    <UL>
    <LI>M&eacute;thode de requ&ecirc;te absente ou inconnue (GET, POST)
    <LI>Absence d'URL
    <LI>Absence d'identifiant HTTP (HTTP/1.0)
    <LI>La requ&ecirc;te est peut-&ecirc;tre trop volumineuse
    <LI>Champ <code>Content-Length</code> absent pour les requ&ecirc;tes POST ou PUT
    <LI>Caract&egrave;re ill&eacute;gal dans le nom de la machine, les soulign&eacute;s (underscores) ne sont pas autoris&eacute;s.
    </UL>
    </P>
     
    <BR clear="all">
    <HR noshade size="1px">
    <ADDRESS>
    Generated Thu, 14 Jan 2010 10:15:10 GMT by www-cache.curie.fr (squid/2.7.STABLE6-20090401)
    </ADDRESS>
    </BODY></HTML>
    400 Bad Request at ./calculatrice_client.pl line 47
    Merci d'avance si quelqu'un peut m'aclairer

  2. #2
    Membre actif
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 80
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 167
    Points : 215
    Points
    215
    Par défaut
    Bonjour,
    Juste après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #---------------------------------------------
    # WEB SERVICE
    #---------------------------------------------
    rajoute la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "Content-type: text/html\n\n";
    Cela "dit" au serveur que le script est destiné à générer une page HTML,
    cela s'appelle le "content-type header", si on imprime quoi que ce soit
    avant, ou si on l'oublie on obtient "Internal Server Error".
    Attention aux deux "\n"
    Nibroc

    Citation Envoyé par elims Voir le message
    Bonjour,

    Je suis actuellement sur un projet de création d'un service Web à partir d'un code métier déja créé (PERL). Etant totalement débutant à ce sujet, j'ai décidé de tester un tout petit service Web. J'ai codé quelques méthodes en PERL, puis codé un appel du service Web. Le problème est qu'il me dit que ma requête n'est pas valide et j'avoue que je ne comprends pas d'où ça vient. J'ai dû commencer à coder pour mon projet et j'ai été confronté au même problème donc je n'ai pas dû vraiment comprendre tout au sujet des services Web lol. voici le code de mon test.


    COTE SERVEUR
    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
     
    #!/usr/local/bin/perl -w
     
     
    use strict;
    use warnings ;
    use CGI ':standard';
    use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
     
    use SOAP::Transport::HTTP ;
     
    #---------------------------------------------
    # WEB SERVICE
    #---------------------------------------------
     
     
    my $cgi = SOAP::Transport::HTTP::CGI
    	-> dispatch_to('calculatrice')
    	-> handle;
     
    #----------------------------------------------
    # PACKAGE PERL - MODULE
    #----------------------------------------------
     
    package calculatrice ;
     
    	## methodes
     
    	sub soustraction{
     
    		my($x,$y) = @_ ;
    		my $results = $x - $y ;
    		print ("le resultat est : ".$results."\n") ;
    	}
     
     
    	sub addition{
     
    		my ($a,$b) = @_ ;
    		my $resulta = $a + $b ;
    		print ("le resultat est : ".$resulta."\n") ;
    	}
     
    	sub multiplication{
     
    		my ($c,$d) = @_ ;
    		my $resultm = $c * $d ;
    		print ("le resultat est : ".$resultm."\n") ;
    	}
    COTE CLIENT
    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
     
    #!/usr/local/bin/perl -w
     
     
    use strict;
    use warnings ;
    use CGI ':standard';
    #use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
     
    use SOAP::Lite;
    SOAP::Lite->import(+trace => qw(debug));
     
    #--------------------------------------
    # APPEL DU WEB SERVICE
    #--------------------------------------
     
    print ("#############");
    print SOAP::Lite
        -> uri('http://localhost/calculatrice')
        -> proxy('http://www-cache:3128/')
        -> addition(3,2)
        -> result;
    print "\n";
     
    print ("#############");
    Voici ce que je reçois comme erreur (la ligne 47 de mon code client c'est print SOAP::LITE)

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
     
    [jpellen@u900-bdd-1-85-6983:~/workspace/WS_test/cgi-bin]$  ./calculatrice_client.pl 
    SOAP::Transport::HTTP::Client::send_receive: POST http://www-cache:3128/ HTTP/1.1
    Accept: text/xml
    Accept: multipart/*
    Accept: application/soap
    Content-Length: 512
    Content-Type: text/xml; charset=utf-8
    SOAPAction: "http://localhost/calculatrice#addition"
     
    <?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><addition xmlns="http://localhost/calculatrice"><c-gensym3 xsi:type="xsd:int">3</c-gensym3><c-gensym5 xsi:type="xsd:int">2</c-gensym5></addition></soap:Body></soap:Envelope>
    SOAP::Transport::HTTP::Client::send_receive: HTTP/1.0 400 Bad Request
    Connection: close
    Date: Thu, 14 Jan 2010 10:15:10 GMT
    Via: 1.0 www-cache2.curie.fr:3128 (squid/2.7.STABLE6-20090401)
    Server: squid/2.7.STABLE6-20090401
    Content-Length: 2379
    Content-Type: text/html
    Content-Type: text/html; charset=iso-8859-1
    Client-Date: Thu, 14 Jan 2010 10:15:10 GMT
    Client-Peer: 10.3.0.200:3128
    Client-Response-Num: 1
    Title: ERREUR�: L'URL demand�e n'a pu �tre charg
    X-Cache: MISS from www-cache.curie.fr
    X-Cache-Lookup: NONE from www-cache.curie.fr:3128
    X-Squid-Error: ERR_INVALID_REQ 0
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <HTML><HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
    <TITLE>ERREUR&nbsp;: L'URL demand&eacute;e n'a pu &ecirc;tre charg&eacute;e</TITLE>
    <STYLE type="text/css"><!--BODY{background-color:#ffffff;font-family:verdana,sans-serif}PRE{font-family:sans-serif}--></STYLE>
    </HEAD><BODY>
    <H1>ERREUR</H1>
    <H2>L'URL demand&eacute;e n'a pu &ecirc;tre charg&eacute;e</H2>
    <HR noshade size="1px">
    <P>
    En essayant de traiter la requ&ecirc;te&nbsp;:
    <PRE>
    POST / HTTP/1.1
    TE: deflate,gzip;q=0.3
    Connection: TE, close
    Accept: text/xml
    Accept: multipart/*
    Accept: application/soap
    Host: www-cache:3128
    User-Agent: SOAP::Lite/Perl/0.710.08
    Content-Length: 512
    Content-Type: text/xml; charset=utf-8
    SOAPAction: &quot;http://localhost/calculatrice#addition&quot;
     
    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&lt;soap:Envelope xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:soapenc=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; soap:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot; xmlns:soap=&quot;http://schemas.xmlsoap.org/soap/envelope/&quot;&gt;&lt;soap:Body&gt;&lt;addition xmlns=&quot;http://localhost/calculatrice&quot;&gt;&lt;c-gensym3 xsi:type=&quot;xsd:int&quot;&gt;3&lt;/c-gensym3&gt;&lt;c-gensym5 xsi:type=&quot;xsd:int&quot;&gt;2&lt;/c-gensym5&gt;&lt;/addition&gt;&lt;/soap:Body&gt;&lt;/soap:Envelope&gt;
    </PRE>
    <P>
    L'erreur suivante a &eacute;t&eacute; rencontr&eacute;e&nbsp;:
    <UL>
    <LI>
    <STRONG>
    Requ&ecirc;te invalide
    </STRONG>
    </UL>
     
    <P>
    Quelque chose est invalide dans la requ&eacute;te HTTP. Probl&egrave;mes envisageables&nbsp;:
    <UL>
    <LI>M&eacute;thode de requ&ecirc;te absente ou inconnue (GET, POST)
    <LI>Absence d'URL
    <LI>Absence d'identifiant HTTP (HTTP/1.0)
    <LI>La requ&ecirc;te est peut-&ecirc;tre trop volumineuse
    <LI>Champ <code>Content-Length</code> absent pour les requ&ecirc;tes POST ou PUT
    <LI>Caract&egrave;re ill&eacute;gal dans le nom de la machine, les soulign&eacute;s (underscores) ne sont pas autoris&eacute;s.
    </UL>
    </P>
     
    <BR clear="all">
    <HR noshade size="1px">
    <ADDRESS>
    Generated Thu, 14 Jan 2010 10:15:10 GMT by www-cache.curie.fr (squid/2.7.STABLE6-20090401)
    </ADDRESS>
    </BODY></HTML>
    400 Bad Request at ./calculatrice_client.pl line 47
    Merci d'avance si quelqu'un peut m'aclairer

Discussions similaires

  1. Probleme avec une requete MySQL en perl
    Par Jim_Nastiq dans le forum SGBD
    Réponses: 3
    Dernier message: 14/04/2006, 09h42
  2. [TRANSACTION] Erreur dans requete
    Par Tchinkatchuk dans le forum Langage SQL
    Réponses: 7
    Dernier message: 26/05/2005, 17h38
  3. erreur bigint requete Employee.fdb via AdoDb
    Par jflebegue dans le forum Connexion aux bases de données
    Réponses: 7
    Dernier message: 04/01/2005, 11h03
  4. Recuperer les erreurs des requetes sql en asp
    Par emile13 dans le forum ASP
    Réponses: 3
    Dernier message: 01/04/2004, 13h49

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