背景批量生成账号,依次循环给每个帐号模拟真实注册场景,添加appname和deviceid,然后登录

批量生成账号,代码如下

import json

import requests

for j in range(1, 21):

body = []

#因为接口传数组,一次最多接受数组元素500个

for i in range(1, 501):

print(str(i)+"uuu"+str(j))

data = {}

data["account"]="mctester"+str(i)+"uuu"+str(j)

data["hospitalName"]="北京协和医院"

data["department"]='中医消化科'

data["role"]='医生'

data["type"]="USERNAME"

data["fullName"]="测试中"

data["password"]='test12345'

data["userId"]=0

data["title"]="主任医师"

body.append(data)

print(body)

url = "http://qa-uas-xxx.xxx.xxx"

r = requests.post(url, headers={"Content-Type": "application/json"}, data=json.dumps(body))

print(r.json())

打印response的各个属性

image.png

在HTTP响应头的Link中的属性参数,用来表示与另一个资源之间的类型关系

给每个帐号,添加appname和deviceid,模拟真实注册场景,然后登录

import requests

import uuid

import json

for i in range(1,6):

for j in range(1, 6):

deviceid = str(uuid.uuid1())

#上下文接口url

con_url = "http://qa-uas.xxx.xxxcontext"

#上下文接口body

con_body = {

"app":{

"name":"medclips_plus",

"version" : "0.0.1",

"hotfixVersion":"789"

},

"device":{

"deviceId":deviceid,

"name":"mikasa",

"systemName" :"ios",

"systemVersion":"13.0",

"model":"Samsung",

"localizedModel":"a1000"

}

}

#上下文接口header

headers = {

'x-User-Agent': 'medclips_plus/5.26.0 (iPhone10,3, iOS 13.3.1) net/WIFI channelId/1000',

'Content-Type': 'application/json',

'X-Trace-Id': 'testid'

}

context = requests.request("POST", con_url, headers=headers, data = json.dumps(con_body))

con_dic = json.loads(context.text)

#返回的data值token下个登录接口用

print(con_dic['data'])

#登录

login_url = "http://qa-uas.xxx.xxx/login"

header={}

header['X-User-Token']=con_dic['data']

header['x-User-Agent']='medclips_plus/5.26.0 (iPhone10,3, iOS 13.3.1) net/WIFI channelId/1000'

header['X-Security-Id']= deviceid

header['Content-Type']='application/json'

login_body = {

'account':"mctester"+str(i)+"uuu"+str(j),

'password':'test12345'

}

response = requests.request("POST", login_url, headers=header, data = login_body)

print(response.text)

注意一个地方是,requests.request传参headers后面的值必须是字典格式,实验了下headers传json格式,报错AttributeError: 'str' object has no attribute 'items'

image.png

python相比java报错信息不是很直观,比如上面哪个字段格式错误,提示需要的格式是什么就好了,还绕个弯说传的格式没有预期格式的属性,得倒推这属性是啥数据类型所属的属性,那假如多个数据类型都有这个属性,那还不得一个个找了

python相比java特别灵活,它不需要调更多方法,不同类型变量可以传参给另一个变量也太好用了,不用太多的格式限制、格式转换

注意另一个地方是,requests.request的data参数,必须传json,否则请求参数错误返回400

con_body = {

"app":{

"name":"medclips_plus",

"version" : "0.0.1",

"hotfixVersion":"789"

},

"device":{

"deviceId":str(uuid.uuid1()),

"name":"mikasa",

"systemName" :"ios",

"systemVersion":"13.0",

"model":"Samsung",

"localizedModel":"a1000"

}

}

两种格式对比.png

另外一个小问题,python 2我们经常在文件头声明编码格式utf8,或者数据输出时编码格式设置utf8,python 3默认编码格式utf8,不需要声明和设置

image.png

直接用response.text就可以了~

当然如果需要非utf8的格式,还要把默认utf8格式再做相应转换。

python批量请求url_python批量请求注册接口爬虫相关问题记录相关推荐

  1. springboot后台搭建及登录注册接口编写

    目录 前言 相关技术: 一.使用idea创建springboot项目 二.搭建三层框架dao层.service层.controller层+实体model层: 三.实现登录注册接口 前言 相关技术: 框 ...

  2. ntp服务器响应每秒请求数量,批量、增量接口并发问题和NTP协议

    背景 项目中存在「批量接口」和「增量接口」,两个接口都更新DB中的数据. 如存在以下表格,主键为shopId,shopName表示店名. shopId shopName 111 info111 222 ...

  3. python批量请求url_使用Python Requests伪装成浏览器请求百度360获取关键词批量排名...

    使用Python Requests伪装成浏览器请求百度360获取关键词批量排名 #!/usr/local/python/bin/python3.7 import requests,re,time,ra ...

  4. python编写请求参数带文件_python requests 库请求带有文件参数的接口实例

    有些接口参数是一个文件格式,比如fiddler 抓包参数如下显示 这个接口的 form-data fiddler 显示的和不带文件参数的接口有明显区别,显示的不是简单的键值对,所以我们也不能只通过 d ...

  5. python requests库api_Python+requests库发送接口入参为xml格式的接口请求

    一)接口入参准备: 入参: <?xml version="1.0" encoding = "UTF-8"?> duoceshi 123456 DwO ...

  6. Python自动化学习笔记(八)——接口开发、发送网络请求、发送邮件、写日志...

    1.接口开发(flask模块) Python自动化学习笔记(七)接口开发部分的内容补充 1.1参数为json格式: flask.request.is_json #判断参数是否是json格式 flask ...

  7. python的requests库发送携带上传文件的接口_python requests 库请求带有文件参数的接口实例...

    python requests 库请求带有文件参数的接口实例 有些接口参数是一个文件格式,比如fiddler 抓包参数如下显示 这个接口的 form-data fiddler 显示的和不带文件参数的接 ...

  8. python并发1000个http请求_php下api接口的并发http请求

    php下api接口的并发http请求 ,提高app一个页面请求多个api接口,页面加载慢的问题: func_helper.php /*** 并发http请求** [* 'url' //请求地址* 'm ...

  9. Python学习笔记_4学习Post请求方法/以搜狗翻译接口为例#以及嵌套字典的取值问题

    import requests import json import types def dictget(dict1,obj):#嵌套字典中取目标值for k,v in dict1.items():i ...

最新文章

  1. mixin network_基于Mixin Network的PHP比特币开发教程: 机器人接受比特币并立即退还用户...
  2. 毕业一两年,怎样快速成长和晋升?
  3. 2p刷高恪魔改固件_Newifi3路由器试用高恪固件
  4. python绘制不带颜色曲线图_Python数据可视化库-Matplotlib——折线图,子图绘制
  5. html网页定位,HTML_定位网页元素(示例代码)
  6. 安装多实例造成***S故障
  7. 同一条sql在mysql5.6和5.7版本遇到的问题。
  8. oracle客户端更改字符集,oracle 服务器跟客户端字符集的查看和修改
  9. 代码管理工具之git的学习
  10. Java基础知识面试题(2021年最新版,持续更新...)整理
  11. [MySQL学习] Innodb锁系统(4) Insert/Delete 锁处理及死锁示例分析
  12. css 实现一个尖角_纯CSS实现页面的尖角、小三角、不同方向尖角的方法小结
  13. 如何在BaseFragment中直接调用BaseActivity中相关属性代码的问题
  14. 笔记本没有计算机和网络怎么回事,华为笔记本连wifi无internet怎么办?华为笔记本电脑怎么连不上网?...
  15. TCP与 UDP的区别
  16. 铸造数据安全堤坝,华为云数据灾备解决方案就是强
  17. 007-安装百度云,搜狗输入法,播放器
  18. excel批量超链接工作表_在Excel工作表中创建到另一个文档的超链接
  19. 楼宇计算机系统设计,楼宇智能管理系统IBMS设计方案.doc
  20. 威威猫系列故事——吃鸡腿

热门文章

  1. mtk无线网卡 linux,模块编译问题 给MTK芯片的wifi网卡编译linux驱动 系统是mint
  2. VMware14虚拟机安装苹果系统
  3. UG NX 12 点集
  4. android psensor测试,android传感器Gsensor和Psensor的使用举例
  5. 最全音视频基础知识学习详解(含多个干货链接)
  6. 使用CSS写正方体,结合JS实现3D轮播图
  7. java面试题大合集(开发者必看)
  8. 使用Matlab的appdesigner创建一个简单的图像处理app
  9. javascript常见的设计模式
  10. android开启照相功能,Android--启动拍照功能并返回结果