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 :

script qui génère une Erreur 400


Sujet :

Web Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut script qui génère une Erreur 400
    Bonjour,

    Voilà, j'ai développé il y a quelque temps un petit script perl qui permet d'aller récupérer automatiquement des fichiers sur un site internet en https avec authentification et au travers d'un proxy (pourquoi faire simple quand on peut faire compliqué!)

    Hors, depuis quelques temps, le script ne fonctionne plus, il me renvoie "erreur 400, bad request"

    Mes logind/mdp sont corrects, quand je vais manuellement sur le site, j'arrive à récupérer les fichiers.

    De même, quand je tapes dans l'url la requête que j'utilise, cela focntionne.
    J'ai fait un test: en changeant mon login, j'ai la même erreur à la même vitesse, j'en déduis donc que mon erreur se situe avant l'authentification sur le site.

    J'ai cherché un peu, mais je ne vois pas où se situe mon erreur...

    Voici mon code:

    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
    my $HTTPProxy 	= 'http://monProxy:8080';
    my $NetLoc 	  = 'www.monSite.com';
    my $url 	     = "https://$NetLoc/portal/Downloads/";
     
    my @credentials = ("$NetLoc:443", '', "user" , 'motDePasse');
    my $file = monFichier;
     
    $ENV{HTTPS_PROXY} = $HTTPProxy;
    my $ua;
    if (defined @credentials ) {
    	$ua = new LWP::UserAgent(keep_alive=>1);
    	$ua->credentials(@credentials);
    } else 
    {
    	$ua = new LWP::UserAgent;
    }
     
    $ua->proxy(['http', 'ftp', 'https'] => $HTTPProxy);
     
    my $req = HTTP::Request->new(GET => $url.$file);
     
    my $res = $ua->request($req,$workingdirectory.$file);
    Je pensais, au dbéut, que le soucis venait du header de ma requête, mais il semblerait que mon erreur se situe avant cela.
    Est-possible que l'erreur vienne du fait que ma requête soit HTTP:: et pas HTTPS?
    Est-ce que dans mes crédentials je dois mettre un nom de domaine particulier? J'ai testé en mettant celui du site, mais... Cela ne change rien.

    Si quelque a une idée, solution, proposition,... Je suis preneur!

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Si ça marchait avant et que ça ne marche plus... Tu as essayé de changer le nom du UserAgent ? Le faire se présenter comme ton navigateur par exemple ?

    --
    Jedaï

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Yep, j'ai modifié le UA en le faisant passer pour mon browser mais...
    J'ai modifié le type de fichiers, protocoles et langues acceptés, j'ai mis le plus d'infos qui me semblaient utiles dans les headers, rien ne change
    J'ai essayé d'avoir plus d'infos de la réponse, mais je n'arrive pas à récupérer quoi que ce soit (les autorisations, le nom du domaine,...)

    J'avoue que je ne sais pas trop quoi faire.

    il semblerait que la requête soit refusée avant même l'authentification.

    EDIT:
    Est-ce que mon credential est au bon format? Le second champs indique, si je ne m'abuse, le domaine auquel le site appartient non? Comment peut-on vérifier cette informations? Est-elle indiquée dans la réponse envoyée par le site? Dans l'en-tête de la réponse?
    Est-ce possible que le fait que le site aie changé de domaine impliquerait que ma requête soie mal formée?
    mon $NetLoc indique une adresse en www.MonSite.com, hors mon credential "attaque" le site via le port 443. Lorsque je tape www.MonSite.com:443 dans mon URL, cela m'indique "BAD request" aussi (erreur 400). J'ai testé en mettant https://www.monsite.com:443, cela me redirige vers la page d'accueil lorsque je le fais dans l'url, mais cela reste un bad request dans mon script.
    L'erreur viendrait-elle de là?

Discussions similaires

  1. Code html qui génère une erreur javascript
    Par AyManoVic dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/08/2011, 11h31
  2. Exécutable qui génére une erreur windows
    Par jouidos dans le forum Windows Forms
    Réponses: 4
    Dernier message: 22/01/2007, 15h50
  3. .lib qui génère une erreur au link
    Par mrshadow dans le forum VC++ .NET
    Réponses: 2
    Dernier message: 19/01/2007, 10h47
  4. [VB6] Problème de textbox multiligne qui génére une erreur
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/02/2006, 16h21

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