2017-09-04 4 views
0

J'ai un code simple qui utilise un proxy pour envoyer une requête "GET" à google.Timeout Erreur lors de l'utilisation de proxy avec httplib2 en Python

import httplib2 

http = httplib2.Http(proxy_info = httplib2.ProxyInfo(proxy_type=3,proxy_host=myProxy, proxy_port=myPort)) 
resp, content = http.request("http://google.com", "GET") 
print(resp) 
print(content) 

Pour une raison quelconque, je reçois une erreur de délai d'attente:

resp, content = http.request("http://google.com", "GET") 
    File "C:\Python35\lib\site-packages\httplib2\__init__.py", line 1322, in requ 
st 
    (response, content) = self._request(conn, authority, uri, request_uri, meth 
d, body, headers, redirections, cachekey) 
    File "C:\Python35\lib\site-packages\httplib2\__init__.py", line 1072, in _req 
est 
    (response, content) = self._conn_request(conn, request_uri, method, body, h 
aders) 
    File "C:\Python35\lib\site-packages\httplib2\__init__.py", line 995, in _conn 
request 
    conn.connect() 
    File "C:\Python35\lib\http\client.py", line 849, in connect 
    (self.host,self.port), self.timeout, self.source_address) 
    File "C:\Python35\lib\socket.py", line 711, in create_connection 
    raise err 
    File "C:\Python35\lib\socket.py", line 702, in create_connection 
    sock.connect(sa) 
TimeoutError: [WinError 10060] A connection attempt failed because the connecte 
party did not properly respond after a period of time, or established connecti 
n failed because connected host has failed to respond 

J'utilise un proxy valide, mais ce module ne fonctionne, Est-ce que quelqu'un sait pourquoi cela est arrivé?

Répondre

0

Win Error 10060 signifie qu'aucune connexion ne peut être établie et que l'hôte ou la connexion (proxy) est défaillant. Puisque google n'est pratiquement jamais en panne, nous pouvons réduire le problème à la configuration du proxy.

Étant donné que vous avez apparemment configuré le proxy correctement (en supposant que vous ayez transmis les bons types et les bonnes règles), vous pouvez vérifier le protocole SOCKS pris en charge par le serveur.

Soit vous ne transmettez pas de valeurs valides en tant que configuration proxy, soit la faute du serveur.


Vous pouvez également essayer de diagnostiquer avec wireshark pour voir si des paquets parviennent même au serveur.

+0

Le proxy que j'utilise est valide parce que j'ai essayé de l'utiliser avec le module de demandes et cela fonctionne comme prévu. Que voulez-vous dire en vérifiant le protocole de chaussettes que le serveur prend en charge? – KaramJaber