ho qualche codice di prova (come parte di una webapp) che urllib2 utilizza per eseguire un'operazione Io di solito eseguire tramite un browser:Problema Urllib2 inspiegabile tra virtualenv's.
- Accedere a un sito web remoto
- Sposta in un'altra pagina
- Eseguire un POST compilando un modulo
ho creato 4, virtualenvs pulite separati (con i pacchetti --no-site-) su 3 macchine differenti, tutti con diverse versioni di Python, ma esattamente lo stesso pacchetti (tramite il file dei requisiti del pip) e il codice o funziona sui due virtualenv sulla mia macchina di sviluppo locale (2.6.1 e 2.7.2) - non funzionerà su nessuno dei miei VPS di produzione
In caso contrario, posso accedere correttamente, passare al pagina corretta ma quando invio il modulo, il server remoto risponde dicendomi che c'è stato un errore - è una pagina di errore del server delle applicazioni ('non abbiamo potuto completare la richiesta') e non un errore del server web.
- perché posso accedere correttamente e manovrare per una seconda pagina, questo non sembra essere una sessione o un problema cookie - è particolare per la finale POST
- perché posso eseguire l'operazione su un particolare macchina con le stesse intestazioni e dati ESATTI, questo non sembra essere un problema con quello che sto richiedendo/pubblicando
- perché sto provando il codice su due VPS separati presi in affitto da aziende diverse, questo non sembra essere un problema con l'ambiente fisico VPS
- perché il codice funziona su 2 diverse versioni python, non posso immaginare che sia un incompa problema bilty
Sono completamente perso in questa fase sul perché questo non avrebbe funzionato. Ho persino "ribaltato e acceso-di nuovo" perché non riesco a vedere quale potrebbe essere il problema.
Penso che debba essere qualcosa a che fare con il POST finale proveniente da un VPS che al server remoto non piace, ma non riesco a capire cosa possa essere. Mi sembra che ci sia qualcosa sotto la cappa di URLlib che sta facendo impazzire il server remoto dalla risposta.
EDIT Ho installato la stessa versione di Python esatto (2.6.1) sui VPS come è sul mio lavoro copia locale e non funziona in modalità remota, quindi deve essere qualcosa a che fare con provenienti da un VPS. Come può questo effetto la richiesta Http? È qualcosa di più basso livello?
Esistono firewall in esecuzione sul VPS o sul sito Web di destinazione? Stai usando i cookie e, in caso affermativo, vengono scritti correttamente nella produzione? –
No, lo sto eseguendo su due VPS separati e non funziona per nessuno dei due, ma non penso che siano dietro ai firewall. Sto usando i cookie con cookielib, ma non penso che questo sia il problema perché i cookie funzionano per le prime due operazioni (login e cambio pagina) –