iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python多线程请求带参数的多个接口问题怎么解决
  • 667
分享到

python多线程请求带参数的多个接口问题怎么解决

2023-07-05 12:07:01 667人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍了python多线程请求带参数的多个接口问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python多线程请求带参数的多个接口问题怎么解决文章都会有所收获,下面我们一起来看看吧。多线程

这篇文章主要介绍了python多线程请求带参数的多个接口问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python线程请求带参数的多个接口问题怎么解决文章都会有所收获,下面我们一起来看看吧。

多线程请求带参数的多个接口

对于进程/线程/携程/异步的内容 有时间准备写写了 真的一直用for去循环慢到怀疑人生 需要运用的场景也会很多 所以分开一点点总结一下

先上代码看一下内容,多线程请求接口

imoprt threading # 首先运用到threading模块class BrushGifts:    # 以下是两个相同的接口 send_gift_room_one()是送礼的接口    # 也就是说我想完成的状态是A送B B送A 两个用户同时想对方赠送礼物    def giftt(self, uid, recvUid, giftId):        """        送礼接口        :param uid: 送礼用户        :param recvUid: 收礼用户        :param giftId: 礼物道具id        :return:         """        VoiceRoom().send_gift_room_one(uid, recvUid, giftId)    def giftt_a(self, uid, recvUid, giftId):        # 与上面的接口相同 不多做叙述        # 没什么区别 就是写着好理解俩接口的概念        VoiceRoom().send_gift_room_one(recvUid, uid, giftId)if __name__ == '__main__':    # 因为我的账号是储存在yaml文件内 所以需要先倒出需要用户的uid列表    # 送礼人与收礼人分别倒出    uid_list = YamlHandler(YamlThePath().voice_room_cpNew).get_uid_list(10)    rUid_list = YamlHandler(YamlThePath().number_old).get_scope_uid(1500, 10)    # 这里暂时先展示最简单的AB同时互送~    for (i, j) in zip(uid_list, rUid_list):        # target内需要传入方法名 不要带()因为带括号就等于去调用了该方法 会直接开始执行        # args内传入输入带入的参数 可以按顺序来 也可以整理成元组或字典接收        t1 = threading.Thread(target=BrushGifts().giftt, args=(i, j, 51620))        # 两个threading.Thread就是我请求并发两个接口        t2 = threading.Thread(target=BrushGifts().giftt, args=(j, i, 51620))        # t1.start()为执行        t1.start()        t2.start()

主线程:

主线程的概念就是这个py文件内从头到位的执行 当我执行完最后一行代码t2.start()后 主线程会进入等待状态,等待子线程结束后主线程才会结束

子线程:

子线程的概念就是在主线程执行的过程中我执行到了这里 当然这里是通过t1.start()方法来进行调用的

t1 = threading.Thread(target=BrushGifts().giftt, args=(i, j, 51620))

这时候系统会再开辟出一条子线程进行BrushGifts().giftt方法的执行与调用

主线程在进行的时候会执行t1.start()与t2.start()但是他不会等待他们执行结束,主线程会继续往下,所以t1.start()与t2.start()是同时请求,当t1.start()与t2.start()两个子进程都结束时,主线程才会结束~

因为主线程执行t1.start()与t2.start()是一行一行的执行 而且python无法做到准确意义上的并发 所以如果对数据速度要求很高的时候 此方法不适用

如何用python请求接口

作用:用来重复插入数据

首先下载好python 然后 cmd 输入 python 判断是否全局安装成功

下载好Pcidea 

下载好自己需要的库

python多线程请求带参数的多个接口问题怎么解决

查看请求网络

  •  按好F12

  •  对接口进行请求

  •  先将需要的header请求头标数据进行验证

python多线程请求带参数的多个接口问题怎么解决

  • 查看正文请求

给你一个模板自己慢慢体会 

 import requests                         #导入requests包import randomimport JSONimport time # response = requests.get('Http://www.baidu.com')# print(response.status_code)  # 打印状态码# print(response.url)          # 打印请求url# print(response.headers)      # 打印头信息# print(response.cookies)      # 打印cookie信息# print(response.text)  #以文本形式打印网页源码# print(response.content) #以字节流形式打印# print(response.json())  AddCarURL = "http://localhost:10086/jeecg-boot/cable/insurance/add"AddCarCookies = "eyJ0eXAioiJKV1QiLCJhbGCiOiJIUzI1NiJ9.eyJleHAiOjE2MjkwOTUyNzcsInVzZXJuYW1lIjoiYWRtaW4ifQ.Kn1jB5gUkCdnszSVxnjVVKtRMbx_WJSVZW6G-yJaid8"randomStr = "ABCDEFGHIJKLMNOPQRST"randomInsurance = ["泰康人寿","阳光保险","新华保险","太平人寿","同方全球人寿","友邦保险"," 招商仁和","平安保险"]randomBox = ["石鲜仓储","明顺仓储","雄星仓储","金盛仓储","旺恒仓储","中豹仓储","飞翔仓储","速发仓储","春天仓储"]sess = requests.session()headers = {    "X-Access-Token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MjkxMDUyMjUsInVzZXJuYW1lIjoiYWRtaW4ifQ.EUAjJYACel8QHFw4AFERIaDjXZJTwOOyp8uncqx3Jps",    "User-Agent":"Mozilla/5.0 (windows NT 10.0; Win64; x64) AppleWEBKit/537.36 (Khtml, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19041",    "Referer":"http://localhost:3000/cable/VehicleList",    "Origin":"http://localhost:3000",    "Host":"localhost:10086",    "Content-Type":"application/json; charset=utf-8"} a1=(2017,1,1,0,0,0,0,0,0)              #设置开始日期时间元组(1976-01-01 00:00:00)a2=(2019,3,16,23,59,59,0,0,0)    #设置结束日期时间元组(1990-12-31 23:59:59) a3=(2019,3,16,0,0,0,0,0,0)              #设置开始日期时间元组(1976-01-01 00:00:00)a4=(2021,8,16,23,59,59,0,0,0)    #设置结束日期时间元组(1990-12-31 23:59:59) start=time.mktime(a1)    #生成开始时间戳end=time.mktime(a2)      #生成结束时间戳 start1=time.mktime(a3)    #生成开始时间戳end2=time.mktime(a4)      #生成结束时间戳 # for i in range(10):#     t=random.randint(start,end)    #在开始和结束时间戳中随机取出一个#     date_touple=time.localtime(t)          #将时间戳生成时间元组#     date=time.strftime("%Y-%m-%d",date_touple)  #将时间元组转成格式化字符串(1976-05-21)##     t1 = random.randint(start1,end2)#     date_touplen=time.localtime(t1)          #将时间戳生成时间元组#     dateOne=time.strftime("%Y-%m-%d",date_touplen)  #将时间元组转成格式化字符串(1976-05-21)#     print(date + " " +dateOne)     def addCar(num:int):    # {"type": "2", "carryingCapacity": "3吨", "license": "粤A888", "engineNumber": "123456", "state": 0}     # {"vehicleId": "2", "insuraName": "人寿保险", "insurancePolicy": "UY1254SD5492W", "insuranceDateBegin": "2021-08-16",    #  "insuranceDateEnd": "2021-08-31", "strongPolicy": "UY1254SD5492E", "strongDateBegin": "2021-07-01",    #  "strongDateEnd": "2021-08-28", "license": "2"}    for i in range(num):          t = random.randint(start, end)  # 在开始和结束时间戳中随机取出一个        date_touple = time.localtime(t)  # 将时间戳生成时间元组        date = time.strftime("%Y-%m-%d", date_touple)  # 将时间元组转成格式化字符串(1976-05-21)         t1 = random.randint(start1, end2)        date_touplen = time.localtime(t1)  # 将时间戳生成时间元组        dateOne = time.strftime("%Y-%m-%d", date_touplen)  # 将时间元组转成格式化字符串(1976-05-21)         datas = {}        datas["vehicleId"] = "2"        datas["insuraName"] = random.choice(randomInsurance)        datas["insurancePolicy"] = random.choice(randomStr) + str(random.randint(10000, 99999)) + random.choice(randomStr) + str(random.randint(10000, 99999));        datas["insuranceDateBegin"] = date        datas["insuranceDateEnd"] = dateOne        datas["strongPolicy"] = random.choice(randomStr) + str(random.randint(10000, 99999)) + random.choice(randomStr) + str(random.randint(10000, 99999));        datas["strongDateBegin"] = date        datas["strongDateEnd"] = dateOne        datas["license"] = i         print(datas)        res=requests.post(url=AddCarURL, data=json.dumps(datas), headers=headers)        print(res.text)  addCar(100)

记得要通过 token 验证,还有根据数据转json 即可。

关于“python多线程请求带参数的多个接口问题怎么解决”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“python多线程请求带参数的多个接口问题怎么解决”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网Python频道。

--结束END--

本文标题: python多线程请求带参数的多个接口问题怎么解决

本文链接: https://www.lsjlt.com/news/351617.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python多线程请求带参数的多个接口问题怎么解决
    这篇文章主要介绍了python多线程请求带参数的多个接口问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python多线程请求带参数的多个接口问题怎么解决文章都会有所收获,下面我们一起来看看吧。多线程...
    99+
    2023-07-05
  • python多线程请求带参数的多个接口问题
    目录多线程请求带参数的多个接口如何用python请求接口总结多线程请求带参数的多个接口 对于进程/线程/携程/异步的内容 有时间准备写写了 真的一直用for去循环慢到怀疑人生 需要运...
    99+
    2023-03-14
    python多线程 python请求带参数 python多个接口
  • MFC多线程传参问题怎么解决
    本篇内容主要讲解“MFC多线程传参问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MFC多线程传参问题怎么解决”吧!在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利...
    99+
    2023-06-17
  • python线程池并发请求数据问题怎么解决
    在Python中,可以使用concurrent.futures模块中的ThreadPoolExecutor类来创建线程池,并发处理请...
    99+
    2023-10-26
    python
  • python多线程效率低问题怎么解决
    Python中的多线程效率低的问题主要是由于Python的全局解释器锁(GIL)导致的。GIL是Python解释器中的一个机制,它确...
    99+
    2023-09-04
    python
  • Python互斥锁怎么解决多线程问题
    这篇文章给大家分享的是有关Python互斥锁怎么解决多线程问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均...
    99+
    2023-06-14
  • python线程池ThreadPoolExecutor怎么传单个参数和多个参数
    这篇文章主要介绍了python线程池ThreadPoolExecutor怎么传单个参数和多个参数的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python线程池ThreadPoolExecutor怎么传单个参数...
    99+
    2023-07-05
  • 解决python多线程的返回值问题
    前几天看了下python的多线程,但是发现创建的线程得不到函数的返回值,查阅资料发现需要重写Thread类,直接上代码。import threadin...
    99+
    2023-01-31
    多线程 返回值 python
  • Android斩首行动接口预请求问题怎么解决
    本篇内容介绍了“Android斩首行动接口预请求问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言开发同学应该都很熟悉我们页面的...
    99+
    2023-07-05
  • Java多线程死锁问题怎么解决
    解决Java多线程死锁问题的常用方法有以下几种:1. 避免使用多个锁:尽量减少使用多个锁来降低出现死锁的概率。2. 按照固定的顺序获...
    99+
    2023-09-22
    Java
  • Java多线程之线程安全问题怎么解决
    本篇内容主要讲解“Java多线程之线程安全问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java多线程之线程安全问题怎么解决”吧!1.线程安全概述1.1什么是线程安全问题首先我们需要...
    99+
    2023-06-30
  • 如何解决多个Ajax请求执行返回先后的问题
    这篇文章主要讲解了“如何解决多个Ajax请求执行返回先后的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决多个Ajax请求执行返回先后的问题”吧!...
    99+
    2024-04-02
  • SpringBoot怎么用实体接收Get请求传递过来的多个参数
    这篇文章主要介绍了SpringBoot怎么用实体接收Get请求传递过来的多个参数的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot怎么用实体接收Get请求传递过来的多个参数文章都会有所收获,下面...
    99+
    2023-06-30
  • springboot多线程高并发问题怎么解决
    要解决Spring Boot多线程高并发问题,你可以考虑以下几个方面:1. 线程池配置:合理配置线程池的大小、队列容量等参数,以满足...
    99+
    2023-08-24
    springboot
  • vue如何解决一个方法同时发送多个请求的问题
    这篇文章主要介绍了vue如何解决一个方法同时发送多个请求的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在...
    99+
    2024-04-02
  • Linux多线程及多线程并发访问同一块内存的问题怎么解决
    这篇文章主要介绍了Linux多线程及多线程并发访问同一块内存的问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux多线程及多线程并发访问同一块内存的问题怎么解决文章都会有所收获,下面我们一起来看...
    99+
    2023-07-05
  • springboot接收http请求,解决参数中+号变成空格的问题
    目录springboot接收http请求,参数中+号变成空格小插曲解决get请求中的问题解决post请求中的问题SpringBoot问题笔记:http请求参数含有特殊符号[]解决方法...
    99+
    2024-04-02
  • 解决 PHP 多线程函数中的并发问题
    php 多线程函数中的并发问题可以通过使用以下方法解决:使用同步工具(如互斥锁)来管理多线程访问共享资源。使用支持互斥选项的函数,以确保函数在另一个线程执行时不会被重新调用。将非可重入函...
    99+
    2024-05-01
    php 并发
  • SpringBoot @PostMapping接收HTTP请求的流数据问题怎么解决
    这篇文章主要讲解了“SpringBoot @PostMapping接收HTTP请求的流数据问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot ...
    99+
    2023-07-05
  • 多线程编程中遇到的Python问题及解决方法
    多线程编程中遇到的Python问题及解决方法Python是一种广泛使用的编程语言,它有许多优点,其中之一就是可以通过多线程来提高程序的执行效率。然而,在多线程编程中,也会遇到一些常见的问题。本文将讨论一些常见的多线程编程问题,并提供相应的解...
    99+
    2023-10-22
    死锁(Deadlock):多线程编程中
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作