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

VB.NET Discussion :

Requete Web, erreur de proxy (407)


Sujet :

VB.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Points : 106
    Points
    106
    Par défaut Requete Web, erreur de proxy (407)
    Bonjour,

    Je vous demande une nouvelle fois un coup de main mais pour une application web cette fois.

    J'utilise le code suivant pour récupérer le contenu d'une page. En local via une page html enregistrer sur mon PC ca marche sans problème. Le soucis vient de l'autentification sur le proxy, sachant que je peux sans problème accéder à la dite page via mon navigateur (après identification proxy).

    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
            Dim url As String = "..."
            Dim ChaineJson As String
     
     
            ' Création de la requête
            Dim objWebRequest As System.Net.WebRequest = HttpWebRequest.Create(url)
            objWebRequest.Proxy = HttpWebRequest.DefaultWebProxy
            objWebRequest.Proxy.Credentials = CredentialCache.DefaultCredentials
     
            ' Envoi de la requête au serveur
            Dim objWebResponse As System.Net.WebResponse = objWebRequest.GetResponse()
            ' Stream pour récupérer le résultat
            Dim objStreamReader As System.IO.StreamReader = Nothing
            Try
                objStreamReader = New System.IO.StreamReader(objWebResponse.GetResponseStream())
                ChaineJson = objStreamReader.ReadToEnd()
            Finally
                If Not objWebResponse Is Nothing Then objWebResponse.Close()
            End Try
    Est-ce que quelqu'un à une idée pour utiliser l'autentification par défaut, ou à la rigueur via un formulaire ?

    Merci d'avance

  2. #2
    Membre régulier
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Points : 106
    Points
    106
    Par défaut
    Apparamment on pourrait passer par un Webbrowser, ca demande les infos proxy.

    Par contre, quand j'appelle ma page, il me demande d'enregistrer le fichier .txt sur lequel il pointe...

    A tester...

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    bah il faut spécifier le user/password pour le proxy...

    Remplace ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objWebRequest.Proxy.Credentials = CredentialCache.DefaultCredentials
    Par ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objWebRequest.Proxy.Credentials = new NetworkCredential(userName, password)

  4. #4
    Membre régulier
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Points : 106
    Points
    106
    Par défaut
    Ca marche, merci. Par contre j'ai deux soucis :

    1) Comment récupérer un login/pass proxy déjà configurer, de la même manière que ce que demande le webbroser quand je vais sur la dite page ?

    2) J'ai une erreur 403.

    Sachant que j'ai testé le code sans le proxy et que ca fonctionne.

    Note : C'est quand même étrange qu'on ne trouve presque rien sur internet concernant ces erreurs.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par prologic Voir le message
    1) Comment récupérer un login/pass proxy déjà configurer, de la même manière que ce que demande le webbroser quand je vais sur la dite page ?
    C'est pas possible, du moins pas à ma connaissance. J'ai eu le problème récemment dans l'appli que je développe au boulot, la solution a été de demander manuellement à l'utilisateur.

    Citation Envoyé par prologic Voir le message
    2) J'ai une erreur 403.

    Sachant que j'ai testé le code sans le proxy et que ca fonctionne.
    Bah ça veut dire que l'utilisateur n'est pas autorisé à accéder à la page ; là ça dépend du site que tu appelles, donc je peux pas trop t'aider...

    Citation Envoyé par prologic Voir le message
    Note : C'est quand même étrange qu'on ne trouve presque rien sur internet concernant ces erreurs.
    Ah ? J'ai jamais eu de problème pour trouver des infos à ce sujet... qu'est-ce qu'il te faut de plus que la signification de ces codes ?
    http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

  6. #6
    Membre régulier
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Points : 106
    Points
    106
    Par défaut
    Je ne parle pas spécifiquement des erreurs HTTP, mais plutôt des erreurs de code vb.

    Ca fait quelques jours que je cherche pour récupérer les login proxy, et beaucoup de site propose des codes, ou morceaux de codes qui sont sensé fonctionné. J'ai même trouvé des codes obsolètes depuis plusieurs années qui sont postés comme étant fonctionnels.

    Finalement je n'étais pas si loin de la solution...

  7. #7
    Membre régulier
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Points : 106
    Points
    106
    Par défaut
    Code final.

    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
        Function LoadJSon(ByVal url As String) As String
            ' Création de la requête
            Debug.Print(url)
            Dim objWebRequest As System.Net.WebRequest = HttpWebRequest.Create(url)
            objWebRequest.Proxy = HttpWebRequest.DefaultWebProxy
            objWebRequest.Proxy.Credentials = CredentialCache.DefaultCredentials
            objWebRequest.Proxy.Credentials = New NetworkCredential("user", "password")
     
            ' Envoi de la requête au serveur
            Dim objWebResponse As System.Net.WebResponse
            Try
                objWebResponse = objWebRequest.GetResponse()
            Catch ex As Exception
                MsgBox("Le programme est bloqué par un serveur proxy (Erreur 407)." & Chr(10) & "Il n'y a pas de solution pour le moment autre que désactiver le proxy.", vbExclamation)
                End
            End Try
     
            ' Stream pour récupérer le résultat
            Dim objStreamReader As System.IO.StreamReader = Nothing
            Try
                objStreamReader = New System.IO.StreamReader(objWebResponse.GetResponseStream())
                Return objStreamReader.ReadToEnd()
            Catch ex As Exception
                MsgBox("Le programme est bloqué par le serveur ciblé (Erreur 403).", vbExclamation)
            Finally
                If Not objWebResponse Is Nothing Then objWebResponse.Close()
            End Try
            Return 0
        End Function

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    C'est pas terrible d'afficher des messges comme "Le programme est bloqué par un serveur proxy (Erreur 407)." sans même vérifier quelle est l'erreur... Dans tes tests tu as rencontré une erreur 407, mais ça pourrait très bien être autre chose, et donc le message indiquera une fausse erreur...

  9. #9
    Membre régulier
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Points : 106
    Points
    106
    Par défaut
    Effectivement... n'ayant rencontré que cette erreur je ne me suis pas posé la question, sachant qu'on peut très bien avoir une 404 le jour où la page demandé n'existe pas/plus.

    Du coup j'ai remplace par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox(ex.Message, vbExclamation)

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

Discussions similaires

  1. Requete Sql erreur d'execution 3075
    Par torNAdE dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 18/07/2006, 19h55
  2. [SQL-Server] requete - calcul - erreur bizarre
    Par dor_boucle dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 20/03/2006, 15h27
  3. Probleme avec requete, une erreur survient...
    Par charleshbo dans le forum Access
    Réponses: 6
    Dernier message: 09/02/2006, 14h27
  4. [web] Erreur cgi-li ????
    Par drakan dans le forum Web
    Réponses: 20
    Dernier message: 31/05/2005, 14h06
  5. REquete sans erreur sql qui n'agit pas ........
    Par Skam dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/02/2005, 13h41

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