Python接口自动化测试Requests特殊处理

HTTP请求还有很多类型,比如POST,PUT,DELETE,HEAD,OPTIONS。也都可以用同样的方式实现:

r=requests.post("http://www.org/post")

r=requests.put("http://www.org/put")

r=requests.delete("http://www.org/delete")

r=requests.head("http://httpbin.org/get")

r=requests.options("http://www.org/get")

在URLs中传递参数

有时候我们需要在URL中传递参数,比如在采集百度搜索结果时,我们wd参数(搜索词)和rn参数(搜素结果数量),你可以手工组成URL,或者使用:

r=requests.get(“http://www.baidu.com/”,params={“wd”:”test”})。

获取响应内容

可以通过r.text来获取网页的内容。

r=requests.get('https://www.zhidaow.com')>>>r.textu'\n

文档里说,requests会自动将内容转码。大多数unicode字体都会无缝转码。但我在cygwin下使用时老是出现UnicodeEncodeError错误,郁闷。倒是在python的IDLE中完全正常。

另外,还可以通过r.content来获取页面内容。

>>>r=requests.get('https://www.zhidaow.com')>>>r.contentb'\n

文档中说r.content是以字节的方式去显示,所以在IDLE中以b开头。但我在cygwin中用起来并没有,下载网页正好。所以就替代了urllib2的urllib2.urlopen(url).read()功能。(基本上是我用的最多的一个功能。)

获取网页编码

可以使用r.encoding来获取网页编码。

r=requests.get('http://www.baidu.com')>>>r.encoding'utf-8'

当你发送请求时,requests会根据HTTP头部来猜测网页编码,当你使用r.text时,requests就会使用这个编码。当然你还可以修改requests的编码形式。

r=requests.get('http://www.zhidaow.com')>>>r.encoding'utf-8'

r.encoding='ISO-8859-1'

像上面的例子,对encoding修改后就直接会用修改后的编码去获取网页内容。

json

像urllib和urllib2,如果用到json,就要引入新模块,如json和simplejson,但在requests中已经有了内置的函数,r.json()。就拿查询IP的API来说:

>>>r=requests.get('http://www.taobao.com/service/getIpInfo.php?ip=122.88.60.28')>>>r.json()['data']['country']'中国'

响应头内容

可以通过r.headers来获取响应头内容。

r=requests.get('http://www.tester.com')

r.headers{'content-encoding':'gzip','transfer-encoding':'chunked','content-type':'text/html;charset=utf-8';...}

可以看到是以字典的形式返回了全部内容,我们也可以访问部分内容。

r.headers['Content-Type']'text/html;charset=utf8'

r.headers.get('content-type')'text/html;charset=utf-8'

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

全套资料获取方式:点击下方小卡片自行领取即可

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码小怡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值