Sử dụng lệnh này curl tôi có thể có được câu trả lời Tôi đang tìm kiếm từ BashThực hiện các yêu cầu HTTP qua mô-đun Yêu cầu Python không hoạt động thông qua proxy nơi curl hoạt động? Tại sao?
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
Và nó đã giúp tôi xây dựng mã của tôi bằng Python nhưng tôi cần phải thực hiện một yêu cầu thông qua một proxy . Tuy nhiên, ngay cả khi cung cấp các proxy thích hợp thì nó vẫn không hoạt động. Có lẽ tôi chỉ không nhìn thấy một cái gì đó?
>>> 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'))
Hơn nữa, tại cùng một bảng điều khiển python, tôi có thể sử dụng urllib để thực hiện yêu cầu có thành công.
>>> import urllib
>>> urllib.urlopen("http://www.httpbin.org").read()
---results---
Ngay cả khi các yêu cầu thử chỉ trên một địa chỉ không phải https không hoạt động.
>>> 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:
Yêu cầu quá thanh lịch và tuyệt vời nhưng làm sao có thể thất bại trong trường hợp này?
http://pycurl.sourceforge.net/ –
Tôi biết rằng tôi có thể thiết lập và sử dụng pycurl trên máy Mac của mình mà không gặp quá nhiều rắc rối (hoặc có thể là bất kỳ sự cố nào). Tôi đã cố gắng để đi cho các giải pháp thanh lịch hơn bằng cách sử dụng yêu cầu đó là khá tuyệt vời và sạch sẽ. Cảm ơn bạn đã gợi ý mặc dù. – dalanmiller
Thiết lập proxy để sử dụng với các yêu cầu hoạt động tốt ở đây. Lý tưởng nhất là chúng tôi có thể tái sản xuất những gì bạn nhìn thấy ... nếu không, hãy cho chúng tôi biết tại sao nó không hoạt động là lựa chọn duy nhất khác. Bạn đang nhận được một dấu vết ngăn xếp từ các yêu cầu? Bạn cũng có thể theo dõi mạng của bạn và kiểm tra các yêu cầu thực tế, vì tôi chỉ có thể đoán chúng phải khác nhau cho một hiệu ứng khác nhau được quan sát giữa các yêu cầu curl /. –