当前位置: 首页 > 科技观察

基础篇Python发送Get请求之如何放请求头、参数、获取返回内容

时间:2023-03-18 21:21:43 科技观察

基础篇如何用Python发送Get请求如何放请求头、参数、获取返回内容请求头?4.传入请求头5.Permissiondenied:403-Forbidden:Accessisdenied3.response的返回内容及其他更多信息1.Python命名规范1.英文字符,下划线__,数字由三位组成。2.项目(project)名、文件包名、模块名等以英文开头,不能为纯数字。下划线开头的有特殊含义,不能乱用。3、脚本名称不能与系统模块或第三方模块重名,如requests/unittest/selenium等。4、函数、类、方法、参数的名称不能与已有的名称重名系统。5.类名必须以大写字母开头。除了类名,其他的都以小写字母开头。命名规则最好遵循驼峰式和下划线,例如:qingHan、qing_han6.不要使用中文、特殊字符(:;@等),一些特殊字符有特殊作用。二、发送get请求1、在requestscmd中安装requests:安装:pipinstallrequests卸载:pipuninstallrequests查看:piplist安装时记得关闭抓包工具。如果安装报错超时,是因为没有fq,可以这样安装:pipinstall-ihttp://mirrors.aliyun.com/pypi/simple/requests附上国内常用镜像源阿里云http://mirrors.aliyun.com/pypi/simple/中国科学技术大学https://pypi.mirrors.ustc.edu.cn/simple/豆瓣http://pypi.douban.com/simple/清华大学https://pypi.tuna.清华。edu.cn/simple/中国科学技术大学http://pypi.mirrors.ustc.edu.cn/simple/requests官方文档:https://requests.readthedocs.io/zh_CN/latest/2。发送get请求一个完整的get请求应该包括请求行(url)、请求头(headers)、请求参数(params)。importrequests#getrequest:url+params请求参数url="http://v.juhe.cn/laohuangli/d"#params建议单独取出参数,所以写成p={"key":"abf91475fc19f66c2f1fe567edd75257","date":"2014-09-11"}a=requests.get(url,params=p)#发送请求打印(a.status_code)#状态码打印(a.text)#原始文本内容打印(a.headers)#dictprint(a.headers['Date'])#keyprint(a.cookies)#RequestsCookieJar3。如何判断发送get请求还是不传递请求头?先去掉fiddler中的requestheader,用这个接口发送请求试试Try,如果正常返回200,则不需要传header,如果在工具中发送请求后提示403-Forbidden:访问被拒绝,则需要传递header。请求头中的参数那么多,需要哪些参数呢?尝试在工具中将请求头中的参数一一删除,如果不行,再添加。这取决于开发是如何实施的。自己写接口自动化代码的时候,最好写请求头,这样可以更规范。4.传入的请求头是用字典格式写的,headers=headers,传入的请求头。有些响应内容是gzip压缩的,text只能打印文本内容,内容是二进制流。一般获取返回值的内容,推荐使用content。importrequestsurl="https://www.baidu.com"#构建请求头headers={'User-Agent':'Mozilla/5.0(Macintosh;IntelMacOSX10_12_6)AppleWebKit/537.36(KHTML,likeGecko)Chrome/62.0.3202.89Safari/537.36'}r=requests.get(url,headers=headers)print(r.status_code)print(r.text)#html乱码打印(r.content.decode("utf-8"))#decode解压显示中文5.Permissiondenied:403-Forbidden:访问被拒绝url并且请求参数正确,但是没有权限。可能原因:服务器识别出你是通过代码请求,反脚本机制。解决方法:需要认证,代码中在请求头添加cookies)。例如:图片来自网络3、response的返回内容等更多信息a.status_code响应状态码。a.content字节格式的响应体会自动为你解码gzip和eflate压缩。a.headers将服务器响应头存储在一个字典对象中,但是这个字典比较特殊,字典键不区分大小写,如果键不存在则返回None。a.json()Requests中内置的JSON解码器,将json转换为python字典。a.url获取url。A。编码编码格式。a.cookies获取返回的cookies。A。文本字符串格式的响应体将根据响应头的字符编码自动解码。a.raise_for_status()为失败的请求(非200响应)抛出异常。注意:本文是关于使用代码发送简单的get请求。我有整理自己笔记的习惯。虽然网上有很多这类教程,但是也有很多坑。随意自己写。不喜欢就别喷了。需要的话,自己拿走。稍后我会更新更深入的文章。本文转载自微信公众号“清寒软件测试”,可通过以下二维码关注。转载本文请联系西尔维亚软件测试公众号。