Xmlhttp demande soulève une erreur d'Accès Refusé
La macro Excel suivante, qui est de faire une demande xmlhttp cette page afin d'en extraire certaines valeurs dans une deuxième étape, a travaillé normalement en VBA jusqu'à il y a quelques temps:
Sub WebReq()
Link = "http://it.finance.yahoo.com/q?s=^FCHI&ql=10" & str(rnd())
Set htm = CreateObject("htmlFile")
Set RequestWeb = CreateObject("msxml2.xmlhttp")
With RequestWeb
.Open "GET", "" & Link & "", False
.send
htm.body.innerhtml = .responsetext
End With
End Sub
Maintenant, au lieu, à l'appel de la méthode:
.send
de l'objet msxml2.xmlhttp est la collecte de l'erreur suivante:
Run-time error '-2147024891 (80070005)'
Access is denied.
J'ai été à la recherche sur le web, mais les threads ne sont jamais répondu. Quelqu'un peut-il m'expliquer ce que cette erreur signifie, et si il y a moyen que je pourrais corriger ou même simplement le contourner?
Note: la chaîne de caractères aléatoires à la fin de la variable "Lien" a été ajoutée pour forcer le rechargement de la page, car le script est en train de récupérer en temps réel les valeurs et donc, il doit être chargé à chaque fois.
Des informations supplémentaires: alors que la recherche d'une solution, je m'aperçois maintenant que la partie aléatoire du lien donne toujours la même valeur, même lorsque je termine la course et redémarrez à nouveau:
Link = http://it.finance.yahoo.com/q?s=^FCHI&ql=10 .7055475
Pourquoi est-ce arrivé? Ne devrait pas rnd()
donner une nouvelle valeur aléatoire entre 0 et 1 à chaque appel?
Vous devez vous connecter pour publier un commentaire.
Utilisation
La norme demande tiré à partir d'un ordinateur local interdit l'accès à des sites qui ne sont pas approuvés par IE.
MSXML2.ServerXMLHTTP.6.0
est le côté serveur objet, qui n'a pas d'effectuer ces contrôles.j'ai trouvé que, dans mon cas, la modification de http à https fixe le refus d'accès problème. je ne peux que supposer que le site en quelque sorte fait un changement et ne pas le dire à personne
refus d'accès est IE problème
Mise à jour
3.0
objet ne soulève pas laaccess denied
d'erreur, mais il renvoie un videresponseText
. Au lieu de cela, au moment de l'exécution, il échoue avec unThe data is not available yet
:/Run-time error '-2147012889 (80072ee7): The server name or address could not be resolved
. J'ai été lookinf un peu sur le web, il semble que quelque chose est liée à l'proxy du navigateur.. j'avoue que je ne suis pas vraiment un expert sur les services web, avez-vous idée de pourquoi cet objet soulève ce problème?Dans mon cas, l'utilisateur n'a pas d'ANNONCES d'autorisations pour le serveur proxy sur notre réseau d'entreprise. (Simple surveillance lors de la configuration de l'utilisateur.) Ajouter le manque de sécurité du groupe résolu le problème pour l'utilisateur.
J'ai été en mesure de le réparer en changeant le lien étant passé de l'être "http://" à "https://"
Le site, j'étais en tirant avait mis à niveau et d'essayer de tirer les données à l'aide de la non garantis lien a été un échec. Fonctionne très bien maintenant (pas de changement de code requis.
Cela fonctionne pour moi:
J'ai peur de ne pas comprendre exactement pourquoi ce problème se produit, mais je suppose que c'est sécurisé "https://" contre l'insécurité "http://". J'ai couru dans le même message "accès refusé" en suivant l'exemple de code à partir d'un VBA cours. Le code d'origine était:
J'ai changé le "http://" à "https://" et l'erreur a disparu.