Tôi có một số mã kiểm tra (như là một phần của một webapp) có sử dụng urllib2 để thực hiện một hoạt động tôi thường sẽ thực hiện thông qua một trình duyệt:Vấn đề Urllib2 không giải thích được giữa virtualenv.
- Đăng nhập vào một trang web từ xa
- Di chuyển đến một trang khác
- Thực hiện một POST bằng cách điền vào một hình thức
tôi đã tạo ra 4, virtualenvs sạch riêng biệt (với --no-site-packages) trên 3 máy khác nhau, tất cả với các phiên bản khác nhau của python nhưng cùng chính xác các gói (thông qua tệp yêu cầu pip) và mã o nly hoạt động trên hai virtualenv trên máy phát triển cục bộ của tôi (2.6.1 và 2.7.2) - nó sẽ không hoạt động trên một trong hai VPS sản xuất của tôi
Trong trường hợp không thành công, tôi có thể đăng nhập thành công, di chuyển đến đúng trang nhưng khi tôi gửi biểu mẫu, máy chủ từ xa trả lời cho tôi biết rằng đã xảy ra lỗi - đó là trang lỗi máy chủ ứng dụng ('chúng tôi không thể hoàn tất yêu cầu của bạn') và không phải là lỗi máy chủ web.
- vì tôi có thể đăng nhập thành công và cơ động đến trang thứ hai, điều này dường như không phải là một phiên làm việc hoặc một vấn đề Cookie - đó là đặc biệt đến POST thức
- vì tôi có thể thực hiện các hoạt động trên máy cụ thể có cùng tiêu đề và dữ liệu giống nhau, điều này dường như không phải là vấn đề với những gì tôi yêu cầu/đăng
- vì tôi đang thử mã trên hai VPS riêng biệt được thuê từ các công ty khác nhau là một vấn đề với môi trường vật lý VPS
- vì mã hoạt động trên 2 phiên bản python khác nhau, tôi không thể tưởng tượng nó là một phiên bản không tương thích vấn đề bilty
Tôi hoàn toàn bị mất ở giai đoạn này là tại sao điều này sẽ không hoạt động. Tôi thậm chí còn 'bật-tắt-và-rẽ-nó-trên-một lần nữa' bởi vì tôi không thể thấy vấn đề có thể là gì.
Tôi nghĩ rằng nó phải là một cái gì đó để làm với POST cuối cùng đến từ một VPS mà máy chủ từ xa không thích, nhưng tôi không thể tìm ra những gì có thể được. Tôi cảm thấy như có một cái gì đó đang xảy ra dưới mui xe của URLlib đó gây ra các máy chủ từ xa không thích trả lời.
EDIT Tôi đã cài đặt cùng một phiên bản Python chính xác (2.6.1) trên VPS như là bản sao cục bộ làm việc của tôi và nó không hoạt động từ xa, vì vậy nó phải có cái gì để làm với nguồn gốc từ một VPS. Làm thế nào điều này có thể ảnh hưởng đến yêu cầu Http? Có điều gì đó thấp hơn không?
Có tường lửa nào chạy trên VPS hoặc trên trang web mục tiêu không? Bạn có đang sử dụng cookie hay không và liệu chúng có được viết đúng cách trong quá trình sản xuất không? –
Không, tôi đang chạy nó trên hai VPS riêng biệt và nó không hoạt động cho một trong hai, nhưng tôi không nghĩ rằng họ đang đứng sau bức tường lửa. Tôi đang sử dụng cookie với cookielib, nhưng tôi không nghĩ rằng đó là vấn đề bởi vì các cookie làm việc cho hai hoạt động đầu tiên (trang đăng nhập và thay đổi) –