2008-09-18 7 views
13

Ich kam heute zu einem alten Skript zurück, das ich für die Anmeldung in Google Mail über SSL hatte. Das Skript hat gut funktioniert letzte Mal, dass ich es (vor einigen Monaten) lief aber jetzt stirbt er sofort mit:Python-Steckdosen plötzlich Zeitüberschreitung?

<urlopen error The read operation timed out> 

Wenn ich das Timeout (egal wie lange), es stirbt noch sofort mit:

<urlopen error The connect operation timed out> 

Letzteres ist reproduzierbar mit:

import socket 
socket.setdefaulttimeout(30000) 
sock = socket.socket() 
sock.connect(('www.google.com', 443)) 
ssl = socket.ssl(sock) 

Rückkehr:

socket.sslerror: The connect operation timed out 

aber ich kann nicht scheinen, das erstere zu reproduzieren, und, nachdem ich viel durch den Code gegangen bin, habe ich keine Ahnung, was das alles verursacht.

+0

Welche Version von Python ist das? – Jim

+0

Bitte geben Sie weitere Informationen an. Ich kann dein Problem nicht reproduzieren. –

+0

Plattform würde auch helfen. –

Antwort

0

Auf www.google.com kann nicht über HTTPS zugegriffen werden. Es leitet zu unsicherem HTTP um. Um Mail zu erhalten, sollten Sie https://mail.google.com

+2

$ curl -i https://www.google.com/ HTTP/1.1 302 Gefunden [...] – aaronsw

1
import socket 
socket.setdefaulttimeout(30000) 
sock = socket.socket() 
sock.connect(('www.google.com', 443)) 
ssl = socket.ssl(sock) 
ssl.server() 
--> '/C=US/ST=California/L=Mountain View/O=Google Inc/CN=www.google.com' 

Es funktioniert gut gehen gehen. Ich kann deinen Fehler nicht reproduzieren.

0

Die erste Sache, die ich überprüfen würde, ist, ob Sie eine Verbindung über einen HTTP-Proxy (in diesem Fall werden direkte Verbindungen umgehen den Proxy wahrscheinlich Timeout). Führe Wireshark aus und schau was passiert.