mirror of
https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
synced 2025-11-02 19:58:03 +00:00
GUI: LFRequest: WIP: adding places for proxy assignments
This commit is contained in:
@@ -7,7 +7,7 @@ if sys.version_info[0] != 3:
|
||||
print("This script requires Python 3")
|
||||
exit()
|
||||
|
||||
|
||||
import pprint
|
||||
import urllib.request
|
||||
import urllib.error
|
||||
import urllib.parse
|
||||
@@ -21,11 +21,24 @@ class LFRequest:
|
||||
requested_url = ""
|
||||
post_data = No_Data
|
||||
default_headers = { 'Accept': 'application/json'}
|
||||
proxies = None
|
||||
|
||||
def __init__(self, url, uri=None, debug_=False, die_on_error_=False):
|
||||
def __init__(self, url=None,
|
||||
uri=None,
|
||||
proxies_=None,
|
||||
debug_=False,
|
||||
die_on_error_=False):
|
||||
self.debug = debug_
|
||||
self.die_on_error = die_on_error_;
|
||||
|
||||
# please see this discussion on ProxyHandlers:
|
||||
# https://docs.python.org/3/library/urllib.request.html#urllib.request.ProxyHandler
|
||||
if proxies_ is not None:
|
||||
# check to see if proxy has some fields
|
||||
if ("host" not in proxies_) or ("user" not in proxies_):
|
||||
raise ValueError("HTTP proxy requires, host, user, pass values.")
|
||||
self.proxies = proxies_;
|
||||
|
||||
if not url.startswith("http://") and not url.startswith("https://"):
|
||||
print("No http:// or https:// found, prepending http:// to "+url)
|
||||
url = "http://" + url
|
||||
@@ -52,6 +65,12 @@ class LFRequest:
|
||||
if self.debug:
|
||||
print("new LFRequest[%s]" % self.requested_url )
|
||||
|
||||
def update_proxies(self, request):
|
||||
if (request is None) or (self.proxies is None):
|
||||
return
|
||||
|
||||
for (proto, host) in self.proxies.items():
|
||||
request.set_proxy(host, proto)
|
||||
|
||||
|
||||
# request first url on stack
|
||||
@@ -62,7 +81,7 @@ class LFRequest:
|
||||
if self.die_on_error:
|
||||
die_on_error_ = True
|
||||
if (debug == False) and (self.debug == True):
|
||||
debug = True;
|
||||
debug = True
|
||||
responses = []
|
||||
urlenc_data = ""
|
||||
if (debug):
|
||||
@@ -79,6 +98,8 @@ class LFRequest:
|
||||
request = urllib.request.Request(url=self.requested_url, headers=self.default_headers)
|
||||
print("No data for this formPost?")
|
||||
|
||||
self.update_proxies(request)
|
||||
|
||||
request.headers['Content-type'] = 'application/x-www-form-urlencoded'
|
||||
resp = ''
|
||||
try:
|
||||
@@ -207,6 +228,7 @@ class LFRequest:
|
||||
myrequest = urllib.request.Request(url=self.requested_url,
|
||||
headers=self.default_headers,
|
||||
method=method_)
|
||||
self.update_proxies(myrequest)
|
||||
myresponses = []
|
||||
try:
|
||||
myresponses.append(urllib.request.urlopen(myrequest))
|
||||
|
||||
Reference in New Issue
Block a user