Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能


Posted in Python onJanuary 11, 2018

本文实例讲述了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实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python数组过滤实现方法
Jul 27 Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
Jan 03 Python
浅谈python连续赋值可能引发的错误
Nov 10 Python
Python常用特殊方法实例总结
Mar 22 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 Python
Python实现图片识别加翻译功能
Dec 26 Python
python操作docx写入内容,并控制文本的字体颜色
Feb 13 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
python如何利用traceback获取详细的异常信息
Jun 05 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
Jan 11 #Python
python实现员工管理系统
Jan 11 #Python
Python使用base64模块进行二进制数据编码详解
Jan 11 #Python
Python实现备份MySQL数据库的方法示例
Jan 11 #Python
教你用Python写安卓游戏外挂
Jan 11 #Python
python实现学生管理系统
Jan 11 #Python
linecache模块加载和缓存文件内容详解
Jan 11 #Python
You might like
超级实用的7个PHP代码片段分享
2012/01/05 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
2012/07/15 PHP
一个经典实用的PHP图像处理类分享
2014/11/18 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
PHP表单验证内容是否为空的实现代码
2016/11/14 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
微信小程序 window_x64环境搭建
2016/09/30 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
Vue2路由动画效果的实现代码
2017/07/10 Javascript
基于jQuery的表单填充实例
2017/08/22 jQuery
原生js调用json方法总结
2018/02/22 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
2020/10/02 Javascript
Python中字符编码简介、方法及使用建议
2015/01/08 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
python反爬虫方法的优缺点分析
2020/11/25 Python
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
如何将整数int转换成字串String
2014/03/21 面试题
怎样创建、运行java程序
2014/08/01 面试题
情人节寄语大全
2014/04/11 职场文书
家长给学校的建议书
2014/05/15 职场文书
个人承诺书怎么写
2014/05/24 职场文书
离婚撤诉申请书范本
2015/05/18 职场文书
花木兰观后感
2015/06/10 职场文书
儿童诗两首教学反思
2016/02/23 职场文书
委托书范本格式
2019/04/18 职场文书
如何在Python中创建二叉树
2021/03/30 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
2021/05/08 Python
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python