Jurnalul tău rotește proxy-uri. Cererea ta folosește încă pe cel vechi.
Urmărește punctul final selectat până în apelul HTTP real de trimitere, în loc să presupui că afișarea unei valori noi schimbă configurația cererii.
Selectorul afișează proxy A, apoi proxy B. Jurnalul cererilor arată însă în continuare proxy A. Nu este nevoie de un serviciu de rețea pentru a explica această contradicție: este posibil ca apelantul să fi aruncat valoarea returnată de selector.
Urmărește valoarea până în apelul care trimite cererea:
endpoint = choose_proxy()
routes = {'http': endpoint, 'https': endpoint}
response = session.get(target_url, proxies=routes, timeout=15)
Acest fragment presupune o sesiune Requests existentă și un URL de proxy validat. Pentru cererile publice permise prin intermediari publici, lista de proxy-uri gratuite oferă URL-uri candidate care trec prin aceeași cale de selectare și trimitere. Cuvântul-cheie acceptat este proxies. Un ajutor care afișează o mapare, sau returnează una pe care nimeni nu o atribuie, nu poate înlocui maparea furnizată aici.
Păstrează ruta selectată locală operației. În codul concurent, un câmp partajat current_proxy se poate schimba între înregistrare și trimitere. Atunci selecția altui lucrător poate apărea lângă rezultatul greșit.
Folosește un identificator de încercare pentru a lega selecția, configurația de trimitere și rezultatul. Înregistrează un identificator sigur al punctului final în locul URL-ului complet atunci când conține acreditări.
Dacă acele valori coincid dar IP-ul public observat nu se schimbă, ai ajuns la o altă întrebare: dacă punctele finale selectate oferă ieșiri diferite sau o poartă rotativă păstrează o conexiune. Stabilește mai întâi dacă aplicația a trimis ruta pe care susține că a selectat-o. Altfel, speculațiile din partea furnizorului pot ascunde ore întregi o simplă variabilă învechită.