这篇文章主要介绍了 Python 实现可设置持续运行时间线程数及时间间隔的多线程异步 post 请求功能, 涉及 Python 网络请求的创建发送响应处理等相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 Python 实现可设置持续运行时间线程数及时间间隔的多线程异步 post 请求功能分享给大家供大家参考, 具体如下:
#coding=utf8
'''
random.randint(a, b): 用于生成一个指定范围内的整数
其中参数 a 是下限, 参数 b 是上限, 生成的随机数 n: a <= n <= b
random.choice(sequence): 从序列中获取一个随机元素
参数 sequence 表示一个有序类型 (列表, 元组, 字符串)
- '''
- import httplib,json
- import time
- import threading
- from random import randint,choice
- # 创建请求函数
- def postRequest(threadNum):
- postJson={
- }
- #定义需要进行发送的数据
- postData=json.dumps(postJson)
- #定义一些文件头
- headerdata = {
- "content-type":"application/json",
- }
- #接口
- requrl ="/v1/query"
- #请求服务, 例如: www.baidu.com
- hostServer=""
- #连接服务器
- conn = httplib.HTTPConnection(hostServer)
- #发送请求
- conn.request(method="POST",url=requrl,body=postData,headers=headerdata)
- #获取请求响应
- response=conn.getresponse()
- #打印请求状态
- if response.status in range(200,300):
- print u"线程"+str(threadNum)+u"状态码:"+str(response.status)
- conn.close()
- def run(threadNum,internTime,duration):
- #创建数组存放线程
- threads=[]
- try:
- #创建线程
- for i in range(1,threadNum):
- #针对函数创建线程
- t=threading.Thread(target=postRequest,args=(i,))
- #把创建的线程加入线程组
- threads.append(t)
- except Exception,e:
- print e
- try:
- #启动线程
- for thread in threads:
- thread.setDaemon(True)
- thread.start()
- time.sleep(internTime)
- #等待所有线程结束
- for thread in threads:
- thread.join(duration)
- except Exception,e:
- print e
- if __name__ == '__main__ ':
- startime=time.strftime("%Y%m%d%H%M%S")
- now=time.strftime("%Y%m%d%H%M%S")
- duratiion=raw_input(u"输入持续运行时间:")
- while (startime+str(duratiion))!=now:
- run(10,1,int(duratiion))
- now=time.strftime("%Y%m%d%H%M%S")'
运行结果:
希望本文所述对大家 Python 程序设计有所帮助
来源: http://www.phperz.com/article/18/0218/362743.html