
Qu'est-ce qui ne va pas avec cette merde ?
Le vieux fer C s'engage dans le crawler, quatre-vingt pour cent ont rencontré cette erreur : "ServicePointManager does not support HTTPS scheme proxy". C'est comme manger des nouilles sans assaisonnement, un voleur bouleversé ! En fait, cette erreur doit être imputée au mécanisme de conception du cadre .NET. System.Net dans le ServicePointManager est intrinsèquement incompatible avec les proxys HTTPS, en particulier avec le WebRequest, tel que l'ancien système.
Par exemple, si vous utilisez le proxy résidentiel dynamique d'ipipgo pour accéder à un site HTTPS, le code pourrait ressembler à ceci :
WebProxy proxy = new WebProxy("ipipgo.com:8000") ;
WebRequest request = WebRequest.Create("https://目标网站") ;
request.Proxy = proxy ;
Du coup, vous vous retrouvez directement avec une fenêtre pop-up pour signaler les erreurs, en colère ou pas ? Pas de panique, regardez en bas pour avoir une astuce.
Les méthodes locales peuvent également guérir des maladies graves
L'idée de base est la suivante : contourner les limitations du ServicePointManager !Voici trois jokers à donner, il y en a toujours un pour vous :
1. Méthode HttpClient mise à jour(Index de la recommandation ⭐⭐⭐⭐⭐)
NET 4.5+ modifient directement HttpClient, ce produit supporte naturellement le proxy HTTPS :
var handler = new HttpClientHandler {
Proxy = new WebProxy("http://ipipgo.com:8000")
} ; var client = new HttpClient(handler); ; }
var client = new HttpClient(handler) ;
2. Modification du fichier de configuration(pour les paresseux ⭐⭐⭐⭐)
Ajoutez ce code magique à app.config :
</defaultProxy
</system.net
3. piratage du registre(Attention ⚠️)
Placez cette ligne au début du code :
ServicePointManager.Expect100Continue = false ;
Temps consacré à l'assurance qualité (indispensable pour les débutants)
Q : Pourquoi est-ce que j'obtiens toujours des erreurs lorsque j'utilise le proxy d'ipipgo ?
R : Vérifiez d'abord le format du proxy ! Le proxy HTTPS devrait être http://开头, ne vous méprenez pas. Le support technique d'ipipgo est en ligne 24 heures sur 24, il est plus sûr de leur demander directement le code de test.
Q : Ces méthodes réduisent-elles la sécurité ?
R : La troisième méthode le sera effectivement, c'est pourquoi nous recommandons d'utiliser la solution HttpClient. Le proxy d'ipipgo est doté d'un système de cryptage SSL, la double assurance est plus sûre.
Q : Quel est le secret pour vérifier si le proxy fonctionne ?
R : Utilisez ce code pour mesurer d'abord la connectivité de la base :
try {
var response = client.GetAsync("https://api.ipipgo.com/ip").Result ;
Console.WriteLine("Current IP : " + response.Content.ReadAsStringAsync().Result) ; } catch { / Gestion des erreurs / }
} catch { / gestion des erreurs / }
Un guide pour éviter le gouffre (Sang et larmes)
1) Le pool de procuration doit êtreRemplacement régulier de la propriété intellectuelleLa fonction de commutation automatique d'ipipgo est très utile.
2) Ne soyez pas paresseux avec le réglage du délai d'attente, 3 à 5 secondes sont recommandées.
3) Ne paniquez pas si vous obtenez une erreur 403, c'est probablement parce que l'en-tête de la requête n'est pas correctement déguisé.
Enfin, pour dire la vérité, au lieu d'utiliser le cadre sous-jacent, il est préférable d'utiliser directement le SDK prêt à l'emploi de l'ipipgo. Le code est plus impressionnant, mais il n'est pas aussi bon que de choisir le bon outil pour économiser des efforts !

