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

  • 相关阅读:
    软考信息安全工程师专业英语题
    Unity捏脸工具
    网络编程开发及实战(下)
    Java使用Hutool工具包将汉字转换成汉语拼音
    springAOP 通过注解实现 日志打印
    supOS工业操作系统getPropertiesHistory服务
    Thrift RPC改进—更加准确的超时管理
    【计算机网络】UDP协议
    Google Coding style
    简化操作教会你如何使用接口,利用关键词搜索技术获取1688的商品数据
  • 原文地址:https://blog.csdn.net/m0_47485438/article/details/134076552