正规网站制作公司哪家好,湛江做网站电话,设计网站的公司,怎么开网店卖东西1.什么是requests#xff1f;
requests是一个Python第三方库#xff0c;处理URL资源特别方便
2.安装requests
pip3 install requests
如果遇到Permission denied安装失败#xff0c;请加上sudo重试
3.使用requests
3.1get请求方法
3.1.1基本的get请求
import reques…1.什么是requests
requests是一个Python第三方库处理URL资源特别方便
2.安装requests
pip3 install requests
如果遇到Permission denied安装失败请加上sudo重试
3.使用requests
3.1get请求方法
3.1.1基本的get请求
import requestsresponse requests.get(http://httpbin.org/get)
print(response.text)
3.1.2带参数的get请求
对于带参数的传入一个dict作为params参数
import requests
def loginGet():rrequests.get(urlhttp://47.95.142.233:8000/login/auth/,params{name:wuya,age:18})print(协议状态码,r.status_code)#获取到的是字典的数据类型print(返回字典的数据类型,r.json())#获取请求的地址信息print(获取请求地址的信息,r.url)#获取到的是字符串print(获取的是字符串的数据类型,r.text)#获取到的是bytest的数据类型print(获取到的是bytest的数据类型,r.content)#获取响应头print(响应头,r.headers)
备注响应数据一般是r.text来获取如果响应数据是json格式那么使用r.json()
查询电话号码归属地
import requests
rrequests.get(urlhttp://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo,params{mobileCode:15191084297,userId:})print(协议状态码, r.status_code)
print(获取请求地址的信息, r.url)
print(响应头, r.headers)
print(获取的是字符串的数据类型,r.text)
现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛
分享他们的经验还会分享很多直播讲座和技术沙龙
可以免费学习划重点开源的
qq群号632880530 3.2post请求方法
3.2.1json数据格式
import json
def loginPost():r requests.post(urlhttp://47.95.142.233:8000/login/auth/,json{username:15191084297,password:123456},headers{content-type: application/json})print(json.dumps(r.json(),ensure_asciiFalse,indentTrue)) 3.2.2表单的数据格式
rrequests.post(urlhttp://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo,data{mobileCode:15191084297,userId:},headers{content-type:application/x-www-form-urlencoded})print(获取的是字符串的数据类型,r.text)
json和data的区别
什么时候使用json
当请求参数是JSON的时候使用json的参数当请求参数是json但是要使用data的参数那么请求参数要进行序列化的处理
什么时候使用data
当请求参数是表单的时候使用data当请求参数是JSON格式的时候那么请求参数要进行序列化的处理
拉勾网实战
r requests.post(urlhttps://www.lagou.com/jobs/v2/positionAjax.json,data{data: Iphu%2FZ6ba7xjPqUDKO03NaTge36Zu7CANc5xZfNf0Brv4y1pJEeEuKl1PTDANiyGvMDYzLyoZqP7pPX3T9vFbzaVfuiXlpLScGwoDEJ6YlgCeyA38q5TJ%2FeCp2OmMywUQalg1pLh5vpFJIazFh7A6ovCMqZFGFB2DmsZXn22k4LdQJhEnS8Y4rmCv6a15mFX},headers{content-type: application/x-www-form-urlencoded,Cookie: RECOMMEND_TIPtrue; PRE_UTM; PRE_LANDhttps%3A%2F%2Fwww.lagou.com%2F; user_trace_token20220119144853-8c70d9f2-7f4f-4097-ab6f-77a57190e796; LGUID20220119144853-fa5d8ce2-6aa5-4fd0-9353-a266309a766c; privacyPolicyPopupfalse; _gaGA1.2.673573823.1642574934; _gidGA1.2.1607293937.1642574935; LGSID20220119144854-49e4e6e0-cb73-4e52-b471-58cefe6e79dc; PRE_HOSTcn.bing.com; PRE_SITEhttps%3A%2F%2Fcn.bing.com%2F; sajssdk_2015_cross_new_user1; WEBTJ-ID20220119145841-17e712165122f0-02258ae20ef9a5-5e181655-1327104-17e71216513558; JSESSIONIDABAAABAABEIABCI41426992A613A6F1F2FAAD0189C97FFD; sensorsdata2015session%7B%7D; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e61642574935,1642575522; index_location_city%E5%85%A8%E5%9B%BD; X_HTTP_TOKEN68221908d10068cd4255752461329f451998b7de45; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e61642575525; TG-TRACK-CODEindex_search; LGRID20220119145857-272d10f0-d02a-451c-b154-f0074a3fb737; sensorsdata2015jssdkcross%7B%22distinct_id%22%3A%2217e711873e74c8-0e9dec4a6c3c5a-5e181655-1327104-17e711873e818b%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E8%87%AA%E7%84%B6%E6%90%9C%E7%B4%A2%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC%22%2C%22%24latest_referrer%22%3A%22https%3A%2F%2Fcn.bing.com%2F%22%2C%22%24os%22%3A%22Windows%22%2C%22%24browser%22%3A%22Chrome%22%2C%22%24browser_version%22%3A%2297.0.4692.71%22%7D%2C%22%24device_id%22%3A%2217e711873e74c8-0e9dec4a6c3c5a-5e181655-1327104-17e711873e818b%22%7D,User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 Edg/97.0.1072.62,referer:https://www.lagou.com/wn/jobs?labelWordsfromSearchtruesuginputkd%25E6%25B5%258B%25E8%25AF%2595%25E5%25BC%2580%25E5%258F%2591%25E5%25B7%25A5%25E7%25A8%258B%25E5%25B8%2588})
print(协议状态码:,r.status_code)
print(返回协议数据:,r.text)
print(json.dumps(r.json(),indentTrue,ensure_asciiFalse))
4.requests参数详解
headers
里面填写请求头的信息请求头的信息都是字典的数据类型
cookies
在请求头里面需要带上服务端的响应头中返回来的set- cookie的值
51cto实战
def login():rrequests.post(urlhttps://home.51cto.com/index?rebackhttps%3A%2F%2Fhome.51cto.comiframe0is_go_to_user_set_mobile1,data{_csrf:ZXk0VTBJaXENEEE5eCsjN1U9ZGZ0LwI7LBRjAQM7Dh1IDAAeagoZRw,LoginForm[username]:15191084297,LoginForm[password]:cy980716,show_qr:0},headers{content-type:application/x-www-form-urlencoded,User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36,Referer: //home.51cto.com/index,Cookie: www51cto02B0203B122F2012E0EC7BAC6020A4C2pHub; _csrf6a44440f3396ae1244c0004595444c2bc471690ec46ad7c1fa772eb23bb216daa%3A2%3A%7Bi%3A0%3Bs%3A5%3A%22_csrf%22%3Bi%3A1%3Bs%3A32%3A%22hiulHbJF0DP3DfkJImWT3rgl-u4KZCp6%22%3B%7D; _ourplusFirstTime122-1-13-15-38-6; sajssdk_2015_cross_new_user1; sensorsdata2015jssdkcross%7B%22distinct_id%22%3A%2217e525f5627a34-0113622e3482c8-36657407-1296000-17e525f5628112a%22%2C%22first_id%22%3A%22%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22%24device_id%22%3A%2217e525f5627a34-0113622e3482c8-36657407-1296000-17e525f5628112a%22%7D; Hm_lvt_110fc9b2e1cae4d110b7959ee4f27e3b1642059408,1642084977; pub_cookietime2592000; lastloginon; Hm_lpvt_110fc9b2e1cae4d110b7959ee4f27e3b1642085620; Hm_lvt_844390da7774b6a92b34d40f8e16f5ac1642085057,1642085464,1642085663,1642086193; callback_api_urlhttps%3A%2F%2Fhome.51cto.com%2Findex; pub_wechatopenDgZDExYRBjVaYERiLmkgAWt0GV0kZWIHGhIBMTwLMWwlN0oVAxAPBVlec2I2aSVMR1ZESR9RfHkzalAMalZTB1ZdDQdTAwdVVz0DB1cLVgwCBQ1X; PHPSESSID8gfk7kgeg4jjo1a6vkfk2vcc22; once_pce2eb9; _ourplusReturnCount18; _ourplusReturnTime122-1-13-23-12-4; login_fromhome.51cto.com; reg_fromhome.51cto.com; Hm_lpvt_844390da7774b6a92b34d40f8e16f5ac1642086725})print(r.status_code)print(r.text)print(r.cookies)# r.cookies简单理解就是拿到响应头里面的set-cookie返回给客户端的指也就是sessionIDreturn r.cookiesdef profile():rrequests.get(urlhttps://edu.51cto.com/center/user/info/get-user-info,# 通过请求头里面的cookie把返回来的sessionID发送给服务端进行身份验证cookieslogin())print(r.status_code)print(r.text)
files
文件上传的参数
auth
权限验证
import requests
from requests.auth import HTTPBasicAuth
apirequests.get(urlhttp://101.43.158.84:5000/v1/api/books,authHTTPBasicAuth(usernameadmin,passwordadmin),timeout180)print(api.status_code)
print(json.dumps(api.json(),ensure_asciiFalse,indentTrue))
timeout
主要指的是服务端响应数据很慢但有时候很快所以这个时候建议加tiaout相当于隐性等待还有一种就是当网络请求出现requests.exceptions.ConnectTimeout的错误时候那么就意味着该参数需要上场了
import requests
from requests.auth import HTTPBasicAuth
apirequests.get(urlhttp://101.43.158.84:5000/v1/api/books,authHTTPBasicAuth(usernameadmin,passwordadmin),timeout180)print(api.status_code)
print(json.dumps(api.json(),ensure_asciiFalse,indentTrue))
verify
当你的代码没任何的问题但是请求就是返回ssl 以及403的问题那么就意味着需要设置verify的参数如返回错误requests.exceptions.SSLError。那么就需要带上该参数
import requests
from requests.auth import HTTPBasicAuth
apirequests.get(urlhttp://101.43.158.84:5000/v1/api/books,authHTTPBasicAuth(usernameadmin,passwordadmin),timeout180,verifyFalse)
print(api.status_code)
print(json.dumps(api.json(),ensure_asciiFalse,indentTrue))
5.requests中动态参数解决
第一种写法
imoport requests
import json
def login():dict1{username:15191084297,password:123456}rrequests.post(urlhttp://47.95.142.233:8000/login/auth/,datajson.dumps(dict1),headers{content-type:application/json})return r.json()[token]def index():rrequests.get(urlhttp://47.95.142.233:8000/interface/index,headers{Authorization:JWT {0}.format(login())})print(r.text)assert r.json()[count][api]4
第二种写法
imoport requests
import json
def login():dict1{username:15191084297,password:123456}rrequests.post(urlhttp://47.95.142.233:8000/login/auth/,datajson.dumps(dict1),headers{content-type:application/json})return r.json()[token]def index():rrequests.get(urlhttp://47.95.142.233:8000/interface/index,headers{Authorization:JWT {token}.format(tokenlogin())})print(r.text)assert r.json()[count][api]4
下面是配套学习资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你 软件测试面试小程序
被百万人刷爆的软件测试题库谁用谁知道全网最全面试刷题小程序手机就可以刷题地铁上公交上卷起来
涵盖以下这些面试题板块 1、软件测试基础理论 2、web,app接口功能测试 3、网络 4、数据库 5、linux 6、web,app接口自动化 7、性能测试 8、编程基础9、hr面试题 10、开放性测试题11、安全测试12、计算机基础 资料获取方式