2008-09-18 7 views
13

Tôi đã quay lại hôm nay với một tập lệnh cũ mà tôi đã đăng nhập vào Gmail qua SSL. Các kịch bản làm việc tốt lần cuối cùng tôi chạy nó (vài tháng trước) nhưng bây giờ nó chết ngay lập tức với:Ổ cắm Python đột nhiên hết giờ?

<urlopen error The read operation timed out> 

Nếu tôi đặt thời gian chờ (bất kể có bao lâu), nó chết thậm chí ngay lập tức nhiều hơn với:

<urlopen error The connect operation timed out> 

sau đó là tái sản xuất với:

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

trở về:

socket.sslerror: The connect operation timed out 

nhưng tôi dường như không thể tái sản xuất cái cũ và, sau nhiều bước đẩy mã, tôi không có đầu mối gì gây ra bất kỳ điều này.

+0

Phiên bản Python nào? – Jim

+0

Vui lòng chỉ định thêm thông tin. Tôi không thể tái tạo vấn đề của bạn. –

+0

Nền tảng cũng sẽ giúp ích. –

Trả lời

0

www.google.com không thể truy cập được bằng HTTPS. Nó chuyển hướng đến HTTP không an toàn. Để nhận được thư, bạn nên đi tới số https://mail.google.com

+2

$ curl -i https://www.google.com/ HTTP/1.1 302 Đã tìm thấy [...] – 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' 

Nó hoạt động tốt. Tôi không thể tái tạo lỗi của bạn.

0

Điều đầu tiên tôi sẽ kiểm tra là bạn có cần kết nối qua proxy HTTP không (trong trường hợp đó, kết nối trực tiếp bỏ qua proxy sẽ có khả năng hết thời gian chờ). Chạy Wireshark và xem điều gì xảy ra.