Un curieux, j'essaie de lire la section <Head> de beaucoup de différents sites web, et un type particulier de serveur, Apache, donne parfois le code 403 interdit. Ce ne sont pas tous les serveurs Apache qui le font, donc il peut s'agir d'un paramètre de configuration ou d'une version particulière du serveur.La requête System.Net.WebClient obtient 403 Interdit, mais les navigateurs ne le font pas avec les serveurs Apache
Lorsque je vérifie l'URL avec un navigateur Web (Firefox, par exemple), la page se charge correctement. Le code ressemble sorta comme ceci:
var client = new WebClient();
var stream = client.OpenRead(new Uri("http://en.wikipedia.org/wiki/Barack_Obama"));
Normalement, un 403 est une autorisation d'accès a échoué genre de chose, mais ce sont normalement des pages non sécurisées. Je pense qu'Apache est en train de filtrer quelque chose dans les en-têtes des requêtes puisque je ne prends pas la peine d'en créer.
Peut-être que quelqu'un qui en sait plus sur Apache peut me donner quelques idées de ce qui manque dans les en-têtes. Je voudrais garder les en-têtes aussi petits que possible pour minimiser la bande passante.
Merci
C'était le soupçon que je avais besoin. Merci! –
403 peut également être causée par des problèmes TLS. Pour vérifier, vous devez vérifier le texte de l'objet WebException.Response. Ou, essayez d'ajouter ceci à votre code: 'ServicePointManager.SecurityProtocol = (SecurityProtocolType) 3072;' Cela forcera TLS 1.2 –