• 接口测试 —— Requests库GET请求!


    Requests库GET请求是使用HTTP协议中的GET请求方式对目标网站发起请求。

    (不带参数的GET请求请看上一篇文章的练习)

    1、Requests库待参数的GET请求

    使用Get方法带参数请求时,是params=参数字典,而不是data=参数字典。data=参数字典是post方法的参数。

    1. """
    2. 1.学习目标
    3. 必须掌握requests中带参数的get请求
    4. 2.语法
    5. requests.get(url,parmas=None)
    6. 2.1 不带参数的get请求(看上一篇中的练习)
    7. 2.2 带参数的get请求(如下)
    8. 3.操作步骤
    9. # 1.导入requests库
    10. # 2.明确请求地址
    11. # 3.明确请求参数
    12. data = {key:value} 字典格式
    13. # 4.发送请求获取返回数据
    14. 4.需求
    15. 使用requests库发送一个带参数的get请求
    16. """
    17. # 1.导入requests库
    18. import json
    19. import requests
    20. # 2.明确请求地址
    21. url = "http://127.0.0.1:8000/api/departments/"
    22. # 3.明确请求参数
    23. # 是一个字典类型数据
    24. data = {"$dep_id_list": "10,11"}
    25. # 4.发送请求
    26. response = requests.get(url=url, params=data)
    27. # print(response.json())
    28. # 将python对象转换为json字符串(格式化放回数据)
    29. result = json.dumps(response.json(), indent=2, ensure_ascii=False)
    30. # print(type(result)) # 字符串类型
    31. print(result)
    32. """
    33. 结果:
    34. {
    35. "count": 2,
    36. "next": null,
    37. "previous": null,
    38. "results": [
    39. {
    40. "dep_id": "10",
    41. "dep_name": "超神_10",
    42. "master_name": "陆兴雷_10",
    43. "slogan": "带头学习"
    44. },
    45. {
    46. "dep_id": "11",
    47. "dep_name": "超神_11",
    48. "master_name": "陆兴雷_11",
    49. "slogan": "带头学习"
    50. }
    51. ]
    52. }
    53. """

    2、查看GET请求的内容

    我们可以通过访问Httpbin来查看或者调试Requests库发送请求的内容。

    还是以上面的例子为例:

    1. # 1.导入requests库
    2. import json
    3. import requests
    4. # 2.明确请求地址
    5. # url = "http://127.0.0.1:8000/api/departments/"
    6. url = "http://127.0.0.1:9999/get"
    7. # 3.明确请求参数
    8. # 是一个字典类型数据
    9. data = {"$dep_id_list": "10,11"}
    10. # 4.发送请求
    11. response = requests.get(url=url, params=data)
    12. # response = requests.get(url='http://httpbin.org/get?name=admin&age=20') # 这种方式调用也可以
    13. # print(response.json())
    14. # 将python对象转换为json字符串(格式化放回数据)
    15. result = json.dumps(response.json(), indent=2, ensure_ascii=False)
    16. # print(type(result)) # 字符串类型
    17. print(result)
    18. """
    19. 接口返回结果:
    20. {
    21. "args": {
    22. "$dep_id_list": "10,11"
    23. },
    24. "headers": {
    25. "Accept": "*/*",
    26. "Accept-Encoding": "gzip, deflate",
    27. "Connection": "keep-alive",
    28. "Host": "127.0.0.1:9999",
    29. "User-Agent": "python-requests/2.18.4"
    30. },
    31. "origin": "127.0.0.1",
    32. "url": "http://127.0.0.1:9999/get?%24dep_id_list=10%2C11"
    33. }
    34. 我们可以看到args属性中有参数内容,
    35. 如果是不带参数的Get请求,args属性中是没有内容的,如下:
    36. {
    37. "args": {},
    38. "headers": {
    39. "Accept": "*/*",
    40. "Accept-Encoding": "gzip, deflate",
    41. "Connection": "keep-alive",
    42. "Host": "127.0.0.1:9999",
    43. "User-Agent": "python-requests/2.18.4"
    44. },
    45. "origin": "127.0.0.1",
    46. "url": "http://127.0.0.1:9999/get"
    47. }
    48. """
    1. 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
    2. 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
    3. 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
    4. 分享他们的经验,还会分享很多直播讲座和技术沙龙
    5. 可以免费学习!划重点!开源的!!!
    6. qq群号:110685036

    3、带请求头、参数的get请求

    例如上面例子中,请求头信息中"User-Agent": "python-requests/2.18.4",我们需要改变请求头中User-Agent属性的内容,看下面例子:

    1. # 1.导入requests库
    2. import json
    3. import requests
    4. # 2.明确请求地址
    5. # url = "http://127.0.0.1:8000/api/departments/"
    6. url = "http://127.0.0.1:9999/get"
    7. # 3.明确请求参数
    8. # 是一个字典类型数据
    9. data = {"$dep_id_list": "10,11"}
    10. # 明确请求头信息
    11. headers = {
    12. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400"}
    13. # 4.发送请求
    14. response = requests.get(url=url, params=data, headers=headers)
    15. # print(response.json())
    16. # 将python对象转换为json字符串(格式化放回数据)
    17. result = json.dumps(response.json(), indent=2, ensure_ascii=False)
    18. # print(type(result)) # 字符串类型
    19. print(result)
    20. """
    21. 接口返回结果:可以看到User-Agent属性变成了我们设置的内容了。
    22. {
    23. "args": {
    24. "$dep_id_list": "10,11"
    25. },
    26. "headers": {
    27. "Accept": "*/*",
    28. "Accept-Encoding": "gzip, deflate",
    29. "Connection": "keep-alive",
    30. "Host": "127.0.0.1:9999",
    31. "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3775.400 QQBrowser/10.6.4209.400"
    32. },
    33. "origin": "127.0.0.1",
    34. "url": "http://127.0.0.1:9999/get?%24dep_id_list=10%2C11"
    35. }
    36. """

    除此之外Get请求还有很多请求参数,如timeout你可以设置请求时间,如果超过这个时间变自行结束请求,可以利用此判断请求代理的相应效率,避免在某些错误请求上浪费过多的时间

    END今天的分享到此结束了~

  • 相关阅读:
    Python基础入门系列详解20篇
    hive 谓词下推实例分析(on与where的区别)
    微服务08-认识和使用SpringAMQP
    关于Classification-SemiCLS代码中的问题记录
    树存储结构-二叉树
    【MAPBOX基础功能】11、mapbox绘制symbol icon图层并进行添加、删除、更新、显隐等操作
    海光信息科创板上市:市值139​7亿 技术源于AMD授权
    【开题报告】基于Python的绿植采购平台的设计与实现开题报告
    JavaSE笔记(八)重制版
    快速抽取resnet_v2_152中间的特征层
  • 原文地址:https://blog.csdn.net/m0_47485438/article/details/134076552