py http测试工具

test_date.py

# -*- coding: utf-8 -*-
import time;


def echo_time(dt):
    time_array = time.strptime(dt, "%Y-%m-%d")
    print dt + "\t" + str(long(time.mktime(time_array)) * 1000)


def echo_time_f(dt, f):
    time_array = time.strptime(dt, f)
    print dt + "\t" + str(long(time.mktime(time_array)) * 1000)


def echo_time_m(timestamp):
    time_local = time.localtime(timestamp / 1000)
    print time.strftime("%Y-%m-%d %H:%M:%S", time_local)


def test_date():
    # print long(time.time())*1000
    echo_time_m(1498838400000)
    echo_time_m(1501516799999)
    echo_time_m(1508486066239)
    echo_time_f("2017-09-06 16", "%Y-%m-%d %H")
    echo_time("2017-07-01")
    echo_time("2017-07-30")
    echo_time("2017-07-31")
    echo_time("2017-08-01")
    echo_time("2017-08-14")
    echo_time("2017-08-20")
    echo_time("2017-08-21")
    echo_time("2017-08-27")
    echo_time("2017-08-28")
    echo_time("2017-09-01")
    echo_time("2017-09-03")
    echo_time("2017-09-04")
    echo_time("2017-09-07")
    echo_time("2017-09-11")


test_date()

test_url.py

# -*- coding: utf-8 -*-
from http_base import post

local = 'local'
test = 'test'
md5 = 'md5'
token = "token"

# post(local, md5, "getUserPrivilege?appKey=5252515142&thirdAccountId=zlf&channelId=GZGD")

# post(local,token,"getPackageInfo?packageId=501701&appKey=5252515142&mac=aaa&wsId=237449&channelId=GZGD&loginToken=237449&mac=12")

http_base.py

import urllib2, urllib, hashlib, time, json, math, https

sec = "NIaKxmywqF"


def md5(src):
    m2 = hashlib.md5()
    m2.update(src)
    return m2.hexdigest()


def to_string(dic):
    s = ""
    keys = dic.keys()
    keys.sort()
    for k in keys:
        s += "&" + k
        s += "=" + str(dic[k])
    return s[1:] + sec


def post(env, encode_type="md5", url=""):
    host = get_host(env)
    param = parse_param(url)

    if encode_type == 'md5':
        param["sign"] = md5(to_string(param))
    elif encode_type == 'token':
        param["v"] = 1
        param["t"] = int(time.time())
        param["token"] = md5("xxx" + str(param["t"]))
    begin = time.time()
    do_post(host + url[0:url.find("?")], param)
    print str(math.floor((time.time() - begin) * 1000)) + "ms"
    return


def do_post(url, param):
    try:
        print url
        print param
        post_data = urllib.urlencode(param)
        request = urllib2.Request(url, post_data)
        response = urllib2.urlopen(request)
        result = response.read()
        result = result.replace('''\\"''', '''"''')
        result = result.replace('''content":"''', '''content":''')
        result = result.replace('''","type":0''', ''',"type":0''')
        print result
        try:
            print(json.dumps(json.loads(result), indent=4, sort_keys=False, ensure_ascii=False))
        except Exception as e:
            print e
    except Exception as ex:
        print ex
    finally:
        print "final"  # print response


def get_host(env):
    host = ""
    if env == "local":
        host = "http://localhost:9030/bms/is/"
    elif env == "test":
        host = "https://xx:9930/bms/is/"
    elif env == "deploy":
        host = "https://xxxx:9930/bms/is/"
    return host


def parse_param(url):
    param = {}
    query_string = url[url.find("?") + 1:]
    for kv in query_string.split('&'):
        k = kv.split('=')[0]
        v = kv.split('=')[1]
        param[k] = v
    return param

https.py

import httplib, ssl, urllib2, socket


class HTTPSConnectionV3(httplib.HTTPSConnection):
    def __init__(self, *args, **kwargs):
        httplib.HTTPSConnection.__init__(self, *args, **kwargs)

    def connect(self):
        sock = socket.create_connection((self.host, self.port), self.timeout)
        if self._tunnel_host:
            self.sock = sock
            self._tunnel()
        try:
            self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=ssl.PROTOCOL_SSLv23)
        except ssl.SSLError, e:
            print("TryingSSLv3.")
            self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=ssl.PROTOCOL_SSLv23)


class HTTPSHandlerV3(urllib2.HTTPSHandler):
    def https_open(self, req):
        return self.do_open(HTTPSConnectionV3, req)


# install opener
urllib2.install_opener(urllib2.build_opener(HTTPSHandlerV3()))

# if __name__ == "__main__":
#     r = urllib2.urlopen("https://www.baidu.com")
#     print(r.read())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值