• 接口测试 —— 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今天的分享到此结束了~

  • 相关阅读:
    C# TcpClient
    海康Visionmaster-通讯管理:使用 Modbus TCP 通讯 协议与流程交互
    【Head First 设计模式】-- 策略模式
    好消息!北京、珠海PMP考试时间来啦
    Vue首屏加载过慢出现白屏的六种优化方案
    基于Java+SpringBoot制作一个社区宠物登记小程序
    uni-app tree(树状) 组件
    Continual Learning of Large Language Models: A Comprehensive Survey
    (八)Linux搭载4G模块——PDU短信格式的获取与解码
    IEEE trans模板 引用子图问题
  • 原文地址:https://blog.csdn.net/m0_47485438/article/details/134076552