def request_with_cookies(self, url=None, parameters=None):
        '''
        :param url: 请求的url
        :param parameters: 请求的参数
        :return: 返回响应对象

        e.g.
            post_data = {'username': '******', 'password': '******'}
            loginUrl = "http://test2.ishop-city.com/reconciliation/admin/user/login.json"
            testUrl = 'http://test2.ishop-city.com/reconciliation/repayCheck/gethuizong.json'
            http_object = HttpUrlConnection(get_cookie_url=loginUrl, get_cookie_request_data=post_data)
            result=http_object.request_with_cookies(testUrl)
            print(result.readlines())
        '''
        try:
            # 实例化HttpUrlConnection时如果没传url则将request_with_cookies的url赋给self.__url
            if self.__url is None:
                self.__url = url
            # 实例化HttpUrlConnection时如果没传parameters则将request_with_cookies的parameters赋给self.__url
            if self.__data is None:
                self.__data = parameters
            # 已带cookie的对象必须存在且请求的链接url必传
            if self.__opener is not None and self.__url is not None:
                html = self.__opener.open(self.__url, self.__data)
                return html
            else:
                return 0
        except Exception as e:
            logger.error(e)
            logger.exception(u"捕获到错误如下:")
    def request_with_cookies(self, url=None, parameters=None):
        '''
        :param url: 请求的url
        :param parameters: 请求的参数
        :return: 返回响应对象

        e.g.
            post_data = {'username': '******', 'password': '******'}
            loginUrl = "http://test2.ishop-city.com/reconciliation/admin/user/login.json"
            testUrl = 'http://test2.ishop-city.com/reconciliation/repayCheck/gethuizong.json'
            http_object = HttpUrlConnection(get_cookie_url=loginUrl, get_cookie_request_data=post_data)
            result=http_object.request_with_cookies(testUrl)
            print(result.readlines())
        '''
        try:
            # 实例化HttpUrlConnection时如果没传url则将request_with_cookies的url赋给self.__url
            if self.__url is None:
                self.__url = url
            # 实例化HttpUrlConnection时如果没传parameters则将request_with_cookies的parameters赋给self.__url
            if self.__data is None:
                self.__data = parameters
            # 已带cookie的对象必须存在且请求的链接url必传
            if self.__opener is not None and self.__url is not None:
                html = self.__opener.open(self.__url, self.__data)
                return html
            else:
                return 0
        except Exception as e:
            logger.error(e)
            logger.exception(u"捕获到错误如下:")
Beispiel #3
0
def generator():
    try:
        global code_list
        code_list = []
        if not code_list:
            get_district_code()
        id = code_list[random.randint(0, len(code_list))]['code']  # 地区项
        id += str(random.randint(1930, 2013))  # 年份项
        da = date.today() + timedelta(days=random.randint(1, 366))  # 月份和日期项
        id += da.strftime('%m%d')
        id += str(random.randint(100, 300))  # ,顺序号简单处理
        i = 0
        count = 0
        weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]  # 权重项
        check_code = {
            '0': '1',
            '1': '0',
            '2': 'X',
            '3': '9',
            '4': '8',
            '5': '7',
            '6': '6',
            '7': '5',
            '8': '5',
            '9': '3',
            '10': '2'
        }  # 校验码映射
        for i in range(0, len(id)):
            count += int(id[i]) * weight[i]
        id += check_code[str(count % 11)]  # 算出校验码
        return id
    except Exception as e:
        logger.error(e)
        logger.exception(u"捕获到错误如下:")
    def request(self):
        try:
            conn = http_client.HTTPConnection(self.__host, self.__port)
            if self.__method == "GET":
                self.path = self.__path + self.__parameters_urlencode_deal
                conn.request(self.__method, self.__path)
            if self.__method == "POST":
                if self.__headers == {"Content-type": "application/json"}:
                    conn.request(self.__method, self.__path, self.__jdata,
                                 self.__headers)
                if self.__headers == {
                        "Content-type": "application/x-www-form-urlencoded"
                }:
                    conn.request(self.__method, self.__path, self.__data,
                                 self.__headers)

            response = conn.getresponse()
            result_origin = response.read()
            try:
                result = result_origin.decode("gb2312").encode("utf8")
            except:
                result = result_origin
            return result
        except Exception as e:
            logger.error(e)
            logger.exception(u"捕获到错误如下:")
 def __init__(self, url=None, method="GET", parameters=None, cookie=None, headers={}, get_cookie_url=None,
              get_cookie_request_data=None,
              get_cookie_headers=[('User-agent', 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]):
     '''
     :param url: 请求使用的url,由于发送cookie的请求方法可以单独传url故此参数非必填。使用request方法请求时必填。
     :param method: 请求的方法
     :param parameters: 请求的参数
     :param cookie: cookie
     :param headers: 请求头
     :param get_cookie_url: 获取cookie的url,如果调用request_with_cookies时此参数必须传
     :param get_cookie_request_data: 获取cookie时需要传的参数
     :param get_cookie_headers: 获取cookie时需要加的请求头
     '''
     try:
         # 解析url
         if url is None:
             self.__url = None
         else:
             try:
                 if type(url) == bytes:
                     self.__url = url.decode("utf-8")
                 if type(url) == str:
                     self.__url = url
             except:
                 self.__url = url
             logger.debug(self.__url)
             scheme, rest = urllib_parse.splittype(self.__url)
             # 拆分域名和路径
             logger.debug(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
             self.__host_absolutely, self.__path = urllib_parse.splithost(rest)
             host_list = self.__host_absolutely.split(":")
             if len(host_list) == 1:
                 self.__host = host_list[0]
                 self.__port = 80
             elif len(host_list) == 2:
                 self.__host = host_list[0]
                 self.__port = host_list[1]
         # 对所传参数进行处理
         self.__method = method
         self.__data = parameters
         self.__cookie = cookie
         if parameters != None:
             self.__parameters_urlencode_deal = urllib_parse.urlencode(parameters)
         else:
             self.__parameters_urlencode_deal = ""
         self.__jdata = simplejson.dumps(parameters, ensure_ascii=False)
         self.__headers = headers
         self.__opener = None
         self.__get_cookie_request_data = None
         if get_cookie_url is not None:
             cj = ckjar.CookieJar()
             self.__opener = urllib_request.build_opener(urllib_request.HTTPCookieProcessor(cj))
             self.__opener.addheaders = get_cookie_headers
             if get_cookie_request_data is not None:
                 self.__get_cookie_request_data = urllib_parse.urlencode(get_cookie_request_data).encode("utf-8")
             self.__opener.open(get_cookie_url, self.__get_cookie_request_data)
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
Beispiel #6
0
 def time_stamp(cls):
     try:
         # 格式化
         time_format1 = "%Y%m%d%H%M%S"
         return time.strftime(time_format1)
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
Beispiel #7
0
 def __init__(self):
     try:
         current_dir = os.getcwd()
         self.__ini_config_file = BASE_DIR + "/conf/" + "config.ini"
         self.__conf_config_file = BASE_DIR + "/conf/" + "config.conf"
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def time_stamp(cls):
     try:
         # 格式化
         time_format1 = '%Y%m%d%H%M%S'
         return time.strftime(time_format1)
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def __init__(self):
     try:
         current_dir = os.getcwd()
         self.__ini_config_file = BASE_DIR + "/conf/" + "config.ini"
         self.__conf_config_file = BASE_DIR + "/conf/" + "config.conf"
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def ytdyccrm_cancel_func(self):
     try:
         self.__data_dict["dt"] = self.__time_stamp
         sign_str = str(self.__data_dict["dt"]) + self.__data_dict["method"] + str(2.0) + self.__secretkey_value
         sign = Md5.md5(sign_str)
         self.__data_dict["sign"] = sign
         return self.__data_dict
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def __init__(self, interface_code, data_dict, secretkey_value):
     try:
         # 生成时间戳
         self.__time_stamp = TimeStamp.time_stamp()
         self.__data_dict = data_dict
         self.__secretkey_value = secretkey_value
         self.__interface_code = interface_code
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def ini_data(self, label, key, configFile=None):
     try:
         config = configparser()
         if configFile is None:
             configFile = self.__ini_config_file
         config.read(configFile)
         return config.get(label, key)
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
Beispiel #13
0
 def ini_data(self, label, key, configFile=None):
     try:
         config = configparser()
         if configFile is None:
             configFile = self.__ini_config_file
         config.read(configFile)
         return config.get(label, key)
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
Beispiel #14
0
 def md5(cls, strVar):
     try:
         # md5加密并小写化
         md5_var = hashlib.md5()
         md5_var.update(strVar.encode("utf-8"))
         # md5_var.update(strVar)
         sign = md5_var.hexdigest().lower()
         return sign
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def processing(self):
     try:
         processing_dict = dict()
         # 字典生成key和value的对应关系,value为方法对象而不是执行方法
         processing_dict["ytdyccrmcancel"] = self.ytdyccrm_cancel_func
         if self.__interface_code.decode("utf-8") in processing_dict:
             return processing_dict[self.__interface_code.decode("utf-8")]()
         else:
             return 0
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def urldecoded(self, data):
     try:
         data_list_first = data.split("&")
         data_list_second = list()
         for tmp in data_list_first:
             data_list_second.append(tmp.split("="))
             result = dict()
         for i in data_list_second:
             result[i[0]] = i[1]
         return result
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def conf_data(self, key, configFile=None):
     try:
         if configFile is None:
             configFile = self.__conf_config_file
         config_file = open(configFile, 'r')
         result = config_file.readlines()
         result_deal_list = []
         key_value_list = []
         for i in result:
             result_deal_list.append(i.strip('\n'))
         for j in result_deal_list:
             key_value_list.append(j.split('='))
         result_dict = dict(key_value_list)
         return result_dict[key]
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
Beispiel #18
0
 def conf_data(self, key, configFile=None):
     try:
         if configFile is None:
             configFile = self.__conf_config_file
         config_file = open(configFile, 'r')
         result = config_file.readlines()
         result_deal_list = []
         key_value_list = []
         for i in result:
             result_deal_list.append(i.strip('\n'))
         for j in result_deal_list:
             key_value_list.append(j.split('='))
         result_dict = dict(key_value_list)
         return result_dict[key]
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
def get_district_code():
    try:
        with open(DC_PATH) as file:
            data = file.read()
            district_list = data.split('\n')
        for node in district_list:
            # print node
            if node[10:11] != ' ':
                state = node[10:].strip()
            if node[10:11] == ' ' and node[12:13] != ' ':
                city = node[12:].strip()
            if node[10:11] == ' ' and node[12:13] == ' ':
                district = node[14:].strip()
                code = node[0:6]
                code_list.append({"state": state, "city": city, "district": district, "code": code})
    except Exception as e:
        logger.error(e)
        logger.exception(u"捕获到错误如下:")
    def request(self):
        try:
            conn = http_client.HTTPConnection(self.__host, self.__port)
            if self.__method == "GET":
                self.path = self.__path + self.__parameters_urlencode_deal
                conn.request(self.__method, self.__path)
            if self.__method == "POST":
                if self.__headers == {"Content-type": "application/json"}:
                    conn.request(self.__method, self.__path, self.__jdata, self.__headers)
                if self.__headers == {"Content-type": "application/x-www-form-urlencoded"}:
                    conn.request(self.__method, self.__path, self.__data, self.__headers)

            response = conn.getresponse()
            result_origin = response.read()
            try:
                result = result_origin.decode("gb2312").encode("utf8")
            except:
                result = result_origin
            return result
        except Exception as e:
            logger.error(e)
            logger.exception(u"捕获到错误如下:")
Beispiel #21
0
def get_district_code():
    try:
        with open(DC_PATH) as file:
            data = file.read()
            district_list = data.split('\n')
        for node in district_list:
            # print node
            if node[10:11] != ' ':
                state = node[10:].strip()
            if node[10:11] == ' ' and node[12:13] != ' ':
                city = node[12:].strip()
            if node[10:11] == ' ' and node[12:13] == ' ':
                district = node[14:].strip()
                code = node[0:6]
                code_list.append({
                    "state": state,
                    "city": city,
                    "district": district,
                    "code": code
                })
    except Exception as e:
        logger.error(e)
        logger.exception(u"捕获到错误如下:")
def generator():
    try:
        global code_list
        code_list = []
        if not code_list:
            get_district_code()
        id = code_list[random.randint(0, len(code_list))]['code']  # 地区项
        id += str(random.randint(1930, 2013))  # 年份项
        da = date.today() + timedelta(days=random.randint(1, 366))  # 月份和日期项
        id += da.strftime('%m%d')
        id += str(random.randint(100, 300))  # ,顺序号简单处理
        i = 0
        count = 0
        weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]  # 权重项
        check_code = {'0': '1', '1': '0', '2': 'X', '3': '9', '4': '8', '5': '7', '6': '6', '7': '5', '8': '5',
                      '9': '3', '10': '2'}  # 校验码映射
        for i in range(0, len(id)):
            count += int(id[i]) * weight[i]
        id += check_code[str(count % 11)]  # 算出校验码
        return id
    except Exception as e:
        logger.error(e)
        logger.exception(u"捕获到错误如下:")
 def get_opener(self):
     try:
         return self.__opener
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def get_host(self):
     try:
         return self.__host
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def get_parameters_urlencode_deal(self):
     try:
         return self.__parameters_urlencode_deal
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def get_path(self):
     try:
         return self.__path
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def get_host(self):
     try:
         return self.__host
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def get_path(self):
     try:
         return self.__path
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def __init__(self,
              url=None,
              method="GET",
              parameters=None,
              cookie=None,
              headers={},
              get_cookie_url=None,
              get_cookie_request_data=None,
              get_cookie_headers=[
                  ('User-agent',
                   'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')
              ]):
     '''
     :param url: 请求使用的url,由于发送cookie的请求方法可以单独传url故此参数非必填。使用request方法请求时必填。
     :param method: 请求的方法
     :param parameters: 请求的参数
     :param cookie: cookie
     :param headers: 请求头
     :param get_cookie_url: 获取cookie的url,如果调用request_with_cookies时此参数必须传
     :param get_cookie_request_data: 获取cookie时需要传的参数
     :param get_cookie_headers: 获取cookie时需要加的请求头
     '''
     try:
         # 解析url
         if url is None:
             self.__url = None
         else:
             try:
                 if type(url) == bytes:
                     self.__url = url.decode("utf-8")
                 if type(url) == str:
                     self.__url = url
             except:
                 self.__url = url
             logger.debug(self.__url)
             scheme, rest = urllib_parse.splittype(self.__url)
             # 拆分域名和路径
             logger.debug(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
             self.__host_absolutely, self.__path = urllib_parse.splithost(
                 rest)
             host_list = self.__host_absolutely.split(":")
             if len(host_list) == 1:
                 self.__host = host_list[0]
                 self.__port = 80
             elif len(host_list) == 2:
                 self.__host = host_list[0]
                 self.__port = host_list[1]
         # 对所传参数进行处理
         self.__method = method
         self.__data = parameters
         self.__cookie = cookie
         if parameters != None:
             self.__parameters_urlencode_deal = urllib_parse.urlencode(
                 parameters)
         else:
             self.__parameters_urlencode_deal = ""
         self.__jdata = simplejson.dumps(parameters, ensure_ascii=False)
         self.__headers = headers
         self.__opener = None
         self.__get_cookie_request_data = None
         if get_cookie_url is not None:
             cj = ckjar.CookieJar()
             self.__opener = urllib_request.build_opener(
                 urllib_request.HTTPCookieProcessor(cj))
             self.__opener.addheaders = get_cookie_headers
             if get_cookie_request_data is not None:
                 self.__get_cookie_request_data = urllib_parse.urlencode(
                     get_cookie_request_data).encode("utf-8")
             self.__opener.open(get_cookie_url,
                                self.__get_cookie_request_data)
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")
 def get_parameters_urlencode_deal(self):
     try:
         return self.__parameters_urlencode_deal
     except Exception as e:
         logger.error(e)
         logger.exception(u"捕获到错误如下:")