Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
Python / 管理员 发布于 7年前 245
本文实例讲述了Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能。分享给大家供大家参考,具体如下:
#coding=utf8'''random.randint(a, b):用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= brandom.choice(sequence):从序列中获取一个随机元素参数sequence表示一个有序类型(列表,元组,字符串)'''import httplib,jsonimport timeimport threadingfrom 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 eif __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相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号