py-json: working example of creating and destroying stations

This commit is contained in:
Jed Reynolds
2019-10-29 16:09:56 -07:00
parent 1d963fc1b5
commit 9da3b1379d
3 changed files with 298 additions and 116 deletions

View File

@@ -1,5 +1,5 @@
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Class holds default settings for json requests -
# Class holds default settings for json requests -
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
import sys
@@ -13,75 +13,73 @@ import json
class LFRequest:
Default_Base_URL = "http://localhost:8080"
requested_urls = []
post_datas = []
default_headers = {
'Accept': 'application/json'}
Default_Base_URL = "http://localhost:8080"
requested_urls = []
post_datas = []
default_headers = {
'Accept': 'application/json'}
def __init__(self, urls):
self.requested_urls.append(urls)
def __init__(self, urls):
self.requested_urls.append(urls)
# request first url on stack
def formPost(self):
responses = []
urlenc_data = ""
if ((len(self.post_datas) > 0) and (self.post_datas[0] != None)):
urlenc_data = urllib.parse.urlencode(self.post_datas.pop(0)).encode("utf-8")
print("data looks like:"+str(urlenc_data))
request = urllib.request.Request(url=self.requested_urls.pop(0),
data=urlenc_data,
headers=self.default_headers)
else:
request = urllib.request.Request(url=self.requested_urls.pop(0), headers=self.default_headers)
print("No data for this jsonPost?")
# request first url on stack
def formPost(self):
responses = []
urlenc_data = ""
if ((len(self.post_datas) > 0) and (self.post_datas[0] != None)):
urlenc_data = urllib.parse.urlencode(self.post_datas.pop(0)).encode("utf-8")
#print("data looks like:" + str(urlenc_data))
request = urllib.request.Request(url=self.requested_urls.pop(0),
data=urlenc_data,
headers=self.default_headers)
else:
request = urllib.request.Request(url=self.requested_urls.pop(0), headers=self.default_headers)
print("No data for this jsonPost?")
request.headers['Content-type'] = 'application/x-www-form-urlencoded'
responses.append(urllib.request.urlopen(request))
return responses[0]
request.headers['Content-type'] = 'application/x-www-form-urlencoded'
responses.append(urllib.request.urlopen(request))
return responses[0]
def jsonPost(self):
responses = []
if ((len(self.post_datas) > 0) and (self.post_datas[0] != None)):
request = urllib.request.Request(url=self.requested_urls.pop(0),
data=self.post_datas.pop(0),
headers=self.default_headers)
else:
request = urllib.request.Request(url=self.requested_urls.pop(0), headers=self.default_headers)
print("No data for this jsonPost?")
def jsonPost(self):
responses = []
if ((len(self.post_datas) > 0) and (self.post_datas[0] != None)):
request = urllib.request.Request(url=self.requested_urls.pop(0),
data=json.dumps(self.post_datas.pop(0)).encode("utf-8"),
headers=self.default_headers)
else:
request = urllib.request.Request(url=self.requested_urls.pop(0), headers=self.default_headers)
print("No data for this jsonPost?")
request.headers['Content-type'] = 'application/json'
responses.append(urllib.request.urlopen(request))
return responses[0]
request.headers['Content-type'] = 'application/json'
responses.append(urllib.request.urlopen(request))
return responses[0]
def get(self):
myrequest = urllib.request.Request(url=self.requested_urls.pop(0), headers=self.default_headers)
myresponses = []
#print(responses[0].__dict__.keys()) is how you would see parts of response
try:
myresponses.append(urllib.request.urlopen(myrequest))
return myresponses[0]
def get(self):
myrequest = urllib.request.Request(url=self.requested_urls.pop(0), headers=self.default_headers)
myresponses = []
# print(responses[0].__dict__.keys()) is how you would see parts of response
try:
myresponses.append(urllib.request.urlopen(myrequest))
return myresponses[0]
except:
print("Error: ", sys.exc_info()[0])
except:
print("Error: ", sys.exc_info()[0])
return None
return None
def getAsJson(self):
responses = []
responses.append(self.get())
if (len(responses) < 1):
return None
if ((responses[0] == None) or (responses[0].status != 200)):
print("Item not found")
return None
def getAsJson(self):
responses = []
responses.append(self.get())
if (len(responses) < 1):
return None
json_data = json.loads(responses[0].read())
return json_data
if ((responses[0] == None) or (responses[0].status != 200)):
print("Item not found")
return None
json_data = json.loads(responses[0].read())
return json_data
def addPostData(self, post_data):
self.post_datas.append(post_data)
def addPostData(self, post_data):
self.post_datas.append(post_data)
# ~LFRequest