Gestisco molti proxy HTTPS (sono proxy che hanno una propria connessione SSL). Sto creando uno strumento diagnostico in python che tenta di connettersi a una pagina tramite ciascun proxy e inviarmi un'e-mail se non riesce a connettersi attraverso uno di essi.Testare un proxy HTTPS in python
Il modo in cui ho deciso di fare questo è di usare urllib per connettersi attraverso ogni proxy e restituire una pagina che dovrebbe dire "successo" con il codice sottostante.
def fetch(url):
connection = urllib.urlopen(
url,
proxies={'http':"https://"+server+':443'}
)
return connection.read()
print fetch(testURL)
Questa recupera Vorrei chiedere alla perfezione il problema è che sarà ancora prendere Vorrei chiedere anche se le informazioni del server proxy non è corretto o il server proxy è inattivo. Quindi o non usa mai il server proxy o lo prova e si connette senza di esso quando fallisce.
Come posso risolvere questo?
Modifica: nessuno sembra sapere come farlo. Inizierò a leggere le altre librerie di lingue per vedere se riescono a gestirle meglio. Qualcuno sa se è più semplice in un'altra lingua come Go?
Edit: Ho appena scritto questo in un commento qui sotto, ma penso che potrebbe essere un equivoco andare in giro. "Il proxy ha la propria connessione SSL, quindi se vado su google.com, prima faccio uno scambio di chiavi con foo.com e poi un altro con l'indirizzo di destinazione bar.com o l'indirizzo di destinazione baz.com La destinazione non lo fa t devono essere https, il proxy è https "
ho provato. Non ha aiutato. Quale sarebbe il vantaggio delle richieste in questo scenario? –
Ok, quindi l'ho eseguito sul mio ambiente utilizzando un'acquisizione di pacchetti e mostra che urllib non sta inviando una richiesta CONNECT al proxy che non è corretta. Ho quindi letto https://docs.python.org/2/howto/urllib2.html che afferma che "Attualmente urllib2 non supporta il recupero di posizioni https tramite un proxy. Tuttavia, questo può essere abilitato estendendo urllib2 come mostrato nel ricetta http://code.activestate.com/recipes/456195. Ho suggerito di richiedere il modulo python in quanto sembra più semplice e facile da usare che cerca di raggiungere questo obiettivo usando urllib – Yuvika