You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
900 B
34 lines
900 B
import json
|
|
import urllib.parse
|
|
|
|
|
|
class UrlParamsBuilder(object):
|
|
|
|
def __init__(self):
|
|
self.param_map = dict()
|
|
self.post_map = dict()
|
|
self.post_list = list()
|
|
|
|
def put_url(self, name, value):
|
|
if value is not None:
|
|
if isinstance(value, (list, dict)):
|
|
self.param_map[name] = value
|
|
else:
|
|
self.param_map[name] = str(value)
|
|
|
|
def put_post(self, name, value):
|
|
if value is not None:
|
|
if isinstance(value, (list, dict)):
|
|
self.post_map[name] = value
|
|
else:
|
|
self.post_map[name] = str(value)
|
|
|
|
def build_url(self):
|
|
if len(self.param_map) == 0:
|
|
return ""
|
|
encoded_param = urllib.parse.urlencode(self.param_map)
|
|
return "?" + encoded_param
|
|
|
|
def build_url_to_json(self):
|
|
return json.dumps(self.param_map)
|