Utilizzando questo comando ricciolo sono in grado di ottenere la risposta che sto cercando da BashFare richieste HTTP tramite il modulo Python Requests non funziona tramite proxy dove arriccia? Perché?
curl -v -u z:secret_key --proxy http://proxy.net:80 \
-H "Content-Type: application/json" https://service.com/data.json
I have already seen this other post on proxies with the Requests module
e mi ha aiutato a formulare il mio codice in Python, ma ho bisogno di fare una richiesta tramite un proxy . Tuttavia, pur fornendo i proxy appropriati, non funziona. Forse non sto vedendo qualcosa?
>>> requests.request('GET', 'https://service.com/data.json', \
>>> headers={'Content-Type':'application/json'}, \
>>> proxies = {'http' : "http://proxy.net:80",'https':'http://proxy.net:80'}, \
>>> auth=('z', 'secret_key'))
Inoltre, nella stessa console python posso usare urllib per fare una richiesta se ha successo.
>>> import urllib
>>> urllib.urlopen("http://www.httpbin.org").read()
---results---
Persino le richieste di prova su un indirizzo non-https non funzionano.
>>> requests.get('http://www.httpbin.org')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.6/site-packages/requests/api.py", line 79, in get
return request('get', url, **kwargs)
File "/Library/Python/2.6/site-packages/requests/api.py", line 66, in request
prefetch=prefetch
File "/Library/Python/2.6/site-packages/requests/sessions.py", line 191, in request
r.send(prefetch=prefetch)
File "/Library/Python/2.6/site-packages/requests/models.py", line 454, in send
raise ConnectionError(e)
requests.exceptions.ConnectionError: Max retries exceeded for url:
Le richieste sono così eleganti e fantastiche ma come potrebbe non riuscire in questo caso?
http://pycurl.sourceforge.net/ –
So che probabilmente potrei installare e utilizzare pycurl sul mio Mac senza troppi problemi (o probabilmente nessuno). Stavo solo cercando la soluzione più elegante di usare Requests, che è davvero fantastica e pulita. Grazie per il suggerimento però. – dalanmiller
Configurare un proxy per l'uso con le richieste funziona bene qui. Idealmente potremmo riprodurre ciò che vedete ... altrimenti dirci perché non funziona è l'unica altra opzione. Stai ottenendo una traccia dello stack dalle richieste? È anche possibile monitorare la rete e verificare le richieste effettive, dal momento che posso solo supporre che devono essere diverse per un effetto diverso da osservare tra arricciatura/richieste. –