专栏首页猪圈子Python之requests入门

Python之requests入门

最近在学习Python相关的框架花了点时间,早期在python+Selenium+Unittest+HTMLTestRunner(UI自动化这块花了些时间实践了一下)做到后期,个人觉得意义不太大,从根本上没有为我自己个人节约人力成本,反而感觉时间耗费越来越多,起因在于前端UI真的很善变。

在接口自动化这块,之前都是基于工具去做,最近想利于空余时间去学习实践做起来,基于python语言的话,我前期选择了python+requests+Unittest+HTMLTestRunner这个方向,学习目前只做了前半部分requests,花了些时间去了解requests模块。这篇文章主要针对requests,讲真,相信你看完后,会对自己有所帮助。

requests安装方式

1、pip安装 pip install request

2、基于pycharm解释器的添加安装,自行动手百度(我个人是直接通过这种方式安装)

requests实践(发送get请求)

基于模块安装成功之后,我们直接进行调用,我们来看看如何发送get请求的

        源码实例        #-*-coding:utf-8-*-    #author:shichao
    import requests

    #请求某接口地址;客户端发送请求到服务端
    r=requests.get("https://api.github.com")
    #以上请求r是response对象,依据r可以查看服务端返回的接口信息            (headers/状态码等)

这样呢。就是用requests模块的get方法成功进行请求"https://api.github.com"这个网址,并把返回的结果存储在r这个变量中。接着就可以通过r变量来获取具体的响应内容了。

requests实践(打印请求响应内容)

例如通过status_code获取响应状态码,通过headers获取返回的响应头信息。进入源码

        源码实例        #-*-coding:utf-8-*-    #author:shichao
    import requests

    #请求某接口地址;客户端发送请求到服务端
    r=requests.get("https://api.github.com")
    #以上请求r是response对象,依据r可以查看服务端返回的接口信息    (headers/状态码等)
    print('HTTP协议返回的状态码:\n{0}'.format    (r.status_code))    print('HTTP返回的Headers信息:\n{0}'.forma    t(r.headers))    print('HTTP返回的cookies信息:\n{0}'.forma    t(r.cookies))    print("HTTP返回的响应数据:\n{0}".format(r.text))

requests实践(入参)

上面是没有带参形式,如果带参形式呢,我们如何请求呢?继续,脚步不能停,咱往下看,例举某接口实例。

        源码实例    #-*-coding=utf-8-*-    #authou:shichao
    import requests

    r=requests.get(url="https://cart.taobao.com/    trail_mini_cart.htm",
                   params={'callback':'MiniCart.setData'    ,'t':'1526048972328'})    #发送get请求时,url为请求的地址;在params中指定请求        的入参参数
    print('请求的URL: \n{0}'.format(r.url))

    打印内容    F:\python3\python_code\venv\Scripts\python.exe    F:/python3/python_code/Study/api_autotest/get_URL    参数实例.py    请求的URL:     https://cart.taobao.com/trail_mini_cart.htm?    callback=MiniCart.setData&t=1526048972328
    Process finished with exit code 0    我们可以看到打印的URL后面拼接我们入参的参数

requests实践(添加请求头)

接口测试中请求头是必不可少的,请求头的添加方式也跟参数一致在

        源码实例    #-*-coding=utf-8-*-    #author:shichao
    import  requests

    r = requests.get(url='https://cart.taobao.com/    trail_mini_cart.htm',
                     params={'callback':'MiniCart.    setData','t':'1526048972328'},                     headers={'User-Agent': 'Mozilla    /5.0 (Windows NT 10.0; Win64; x64) AppleWebKit    /537.36 (KHTML, like Gecko) Chrome/75.0.3770.100    Safari/537.36',         'Content-Type':'application/json',
         'referer':'https://shoucang.taobao.com/    shop_collect_list.htm?spm=a21bo.2017.1997525053.3.    5af911d9sYX701'
                  }
    )

    print('响应内容:\n{0}'.format(r.text))

requests实践(发送Post请求)

    源码实例    #-*-coding:utf-8-*-    #author:shichao
    import requests

    #请求某接口地址;客户端发送请求到服务端
    r=requests.post("https://httpbin.org/post")
    #以上请求r是response对象,依据r可以查看服务端返回的接口    信息(headers/状态码等)
    print('HTTP协议返回的状态码:\n{0}'.format(r.statu    s_code))    print('HTTP返回的Headers信息:\n{0}'.format(r.he    aders))    print('HTTP返回的cookies信息:\n{0}'.format(r.coo    kies))    print("HTTP返回的响应数据:\n{0}".format(r.text))

其它形式与GET同理。以上就是requests入门初始,相信有点python基础功底的都觉得很简单,没错很多事情就是自己想着难,自己一步一步的实践做起来,并没有那么可怕,重要的是要跨出那一步,并一直坚持学习下去,分享就到这里,希望对你有所帮助,分享到你的朋友圈让你们的朋友跟你一起学习

本文分享自微信公众号 - 猪圈子(Tester-sc),作者:石可乐

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 手把手教你玩转Fiddler抓包工具

    Fiddler是最强大最好用的Web调试工具之一, 它能记录所有客户端和服务器的http和https请求。允许你监视、设置断点、甚至修改输入输出数据。Fiddl...

    测试小兵
  • 如何优雅的写好Pythonic代码?

    Python 与其它语言(比如Java或者C++)相比有比较大的区别,其中最大的特点就是非常简洁。如果按照其它语言的思路来写Python代码,则会使得代码繁琐复...

    测试小兵
  • Python 二十三大实践、编码建议和技巧

    2020年,你又立了什么新的 Flag?新一年,我为大家准备 23 个非常优秀的 Python 实践技巧。希望这些诀窍能在实际工作中帮助大家,并且学到一些有用的...

    测试小兵
  • Python接口测试之Requests(七)

    OK,开始愉快的学习requests库吧,在python的标准库中,虽然提供了urllib,utllib2,httplib,但是做接口测试,requ...

    无涯WuYa
  • 用GCD线程组与GCD信号量将异步线程转换为同步线程

    同时获取两个网络请求的数据,但是网络请求是异步的,我们需要获取到两个网络请求的数据之后才能够进行下一步的操作,这个时候,就是线程组与信号量的用武之地了.

    freesan44
  • python网络爬虫(1)静态网页抓取

    POST请求发送表单信息,密码不显示在URL中,数据字典发送时自动编码为表单形式。

    嘘、小点声
  • Go Web编程--深入学习解析HTTP请求

    之前这个系列的文章一直在讲用 Go语言怎么编写HTTP服务器来提供服务,如何给服务器配置路由来匹配请求到对应的处理程序,如何添加中间件把一些通用的处理任务从具体...

    KevinYan
  • To be a better man !

    Python技术与生活认知的分享
  • Python ATM小程序 v1

    用户2398817
  • 算法与数据结构大系列 - NO.1 - 插入排序

    这是一种就地比较排序算法。这里,维护一个始终排序的子列表。例如,维护数组的下半部分以进行排序。要在此已排序的子列表中“插入”的元素必须找到其适当的位置,然后必须...

    mySoul

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动