学习记录001-接口了解/请求and抓包and基础的python

Posted guodengdeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习记录001-接口了解/请求and抓包and基础的python相关的知识,希望对你有一定的参考价值。

对接口的认识:
 1 就是从数据库里面获取数据的存在
 2 前端页面和数据库之间通过接口来交互,可从数据库获取数据
 3 接口测试没有页面

前端和后端
客户端client:能用浏览器打开的都是前端,有页面可查看
server端

接口测试需要内容:
url 接口请求方式 请求参数 接口文档
由于写程序的语言不同,所以需要用接口来进行交互

关于接口的一些请求方式和测试步骤说明:
1 get请求
   不需要借助工具,直接使用浏览器即可
   浏览器输入方式:url+?+参数名称和对应内容(key=值的方式)
   如果有多个参数需要搜索:参数之间使用&符号进行隔开,进行多个参数搜索
   记住:参数不需要加引号

2 post请求
   需要借助工具:此处是postman
  工具使用:
    001请求方式改为post请求方式
    002输入对应的url地址
    003选择body-----form-date-----输入对应参数名称和对应value(顺序无所谓)
    003点击send

session:存在服务端的键值对:一个key和一个value
cookie:存在本地的键值对
如果把本地cookie进行删除,那么服务器端就会要求重新登录

3 请求方式为post,入参为json类型

   什么是json?所有语言都认识都可以解析的一种通用数据类型,可进行数据的交互,即json;之前所用数据类型有xml等,但是由于传输速度慢以及其他一些弊端,所以被淘汰


  需要借助工具:postman
  工具使用:
     001选择post请求类型
     002输入url
     003选择body---raw----Text下拉框选择JSON---进行json内容的输入
     004进行json输入:

{
"key":"value",

"key":"value",

key":"value"
}

最后一个不要有逗号

     005点击send
4 需要上传cookie:
  页面右键--检查--NetWork--XHR--Headers
  当前检查页面左侧列表显示的是接口地址,需要获取哪个接口信息,直接进行选择即可
  工具:postman
  使用:
     001类型选择
    002进行url的输入
    003进行:(两者都要输入)
         headers
        Body:formdate的内容输入--里面的参数都要输入,不可只输入一项
    004点击send查看

场景:测试的时候服务器地址变了,那么进行测试的话地址需要频繁变更,方法:
postman-小齿轮设置-Manage Environments-Globals-定义地址的名称“ip”和对应地址“value”-进行保存
测试地址写为比如:https://qun.qq.com/cgi-bin/qun_mgr/get_group_list,中间的qun.qq.com改为{{这里是定义的地址名称,这里是定义的地址名称,比如名称为:ip}}
此处注意:定义的时候和页面进行编写的时候的http不要重复即可

Postman接口保存建立集合:
Save-进行接口名称的输入-添加进/新建集合
在Collections(页面左侧)即可查看保存的接口集合列表

5 接口上传文件
   001选择接口类型
   002上传url
   003body-form date
   004进行key的输入:file
   005选择类型:file 随后进行文件的选择上传
   006点击send

抓包
工具:Charles
PC端抓包:
Mac设置:Proxy-macosproxy 才可以抓取到Mac电脑上的请求
overview:大致信息
contents:详细信息--可查看cookie以及信息描述
用抓包工具可查看更多的接口请求信息

1 文件左下角显示“filter”进行接口过滤查看
2 如果用Charles进行https的抓取,需要安装证书

手机端抓包:
(要求:电脑和手机在同一个局域网络里面)
设置:Mac:help-Local IP address--查看ip一般只查看第一个即可
iPhone:网络进行连接无线网的设置:配置代理:手动--服务器:与查看的mac端ip一致--端口号:8888(因为Charles的默认端口号为8888)

1 拦截打断点
2 如果不给服务器打断点,只返回你本地的数据
设置:tools-map local
3 弱网测试
设置:proxy-throttle settings

python:
python的更多使用的场景:数据分析/人工智能/web开发/自动化运维/自动化测试
python和pycharm的关系:
Python是一种语言,有一个环境;而pycharm是一个工具

一 在终端输入python可进入python的交互式命令行环境

二 关于python:

1 定义变量
如果是数值不需要添加引号;而如果是汉字则需要添加引号,关于引号,需要注意双引号和单引号的使用环境
如果输出里面有单引号,那么就使用双引号,那如果输出里面有双引号,那么外面就要用单引号,那如果输出既有单引号也有双引号,那就使用三引号
中文也可以进行定义变量,但是尽量不要使用
2 关于注释
单行注释:使用#号
多行注释:在字段的开始和结束使用三引号进行多行注释
(单行and多行)注释/解注释快捷键:command+?
3 字符串:带双引号
数值:不带双引号,数字类
4 input:接收输入
在python2里面,要用“raw input”代替input
5 条件判断
1 if else--适用于两个条件
  001 if后面要有冒号
  002 if 和 else的下一句会有缩进
  003 不等于的符号:!=
  004 判断两个值是否相等: ==
2 if elif else--判断多个条件适用,但是一次只能走一条路,如果一条通了,下面的代码不执行
001 条件判定为多个的时候,使用“and”进行连接
6 学会尝试分析报错信息提示
  记住:input接收到的全都是字符串类型
  Str - 字符串
  Int - 123等整数类型
7 查看变量的类型
print(type(变量名))
8 类型转换
变量名A = int(变量名字A)
9 循环,遍历,迭代--重复的做一件事情
  001 for循环:不需要定义计数器
       For i in range(循环次数)


  002 while循环
        002-1 定义计数器:
                 count = 0
                 while count <10:
       002-2 while循环对应的else,是while正常循环结束之后执行的
10 break和continue

break:如果在循环里面遇见break,循环结束
continue:在循环里面遇见continu,结束本次循环,进入下次循环
11 循环就是重复的执行循环体里面的代码
12 字符串格式化:
    占位符:%s 适用于任何格式,字符串里面写有几个%s,那面后面就要有几个对应的变量,多个变量名称用逗号间隔,且变量在括号里面;使用该占位符的优势在于:不用转换字符串类型,比较方便
比如:welcome = "欢迎 %s 登陆,今天的日期是:%s" % (第一个变量,第二个变量)
13 str 字符串类型;int 整数类型;float 小数类型;
14 列表/list/数组:
14-001定义列表:列表名称 = 【“第一个元素”,“第二个元素”,”第三个元素“....】
14-002取列表里面的值:采用元素所在的 下标/索引/角标
14-003给列表增加元素:列表名称.append(“元素名称”);该方法是在列表的末尾增加元素
14-004在列表指定位置增加元素:列表名称.insert(欲增加元素的指定位置下角标,“元素名称”)
14-005修改元素指定位置的元素:列表名称[欲修改元素的位置]=“新的元素名称”
14-006删除列表元素:列表名称.pop(欲删除元素下标) 根据角标进行删除
                               列表名称.remove(“元素名称”) 根据元素进行删除,删除的元素不存在的时候会报错
14-007统计一个元素在列表里面出现的次数:列表名称.count(“元素名称”)
14-008找列表里面元素的下标:列表名称.index(“元素名称”)
14-009列表清空:列表名称.clear()
14-010列表进行元素升序排序:列表名称.sort()
14-011列表进行元素降序排序:列表名称.sort(reverse=Tru)
14-012列表元素排序进行反转:列表名称.reverse()
14-013进行列表元素的汇总:第一个列表名称.extend(第二个列表名称) print第一个列表名称会显示第二个的元素在第一个列表元素的后面进行显示
14-014循环列表,输出的结果是列表里面的元素
14-015多维数组 二维数组:变量 = [1,2,3,["a","b","c"]]
                      三维数组:变量 = [1,2,3,["a","b","c",["~","#"]]]
                      多维数组取值:例如取二维数组的“a”元素 print(变量[3][0])

以上是关于学习记录001-接口了解/请求and抓包and基础的python的主要内容,如果未能解决你的问题,请参考以下文章

学习记录008-linux常用命令/设置系统and用户环境变量two

机器学习001 deeplearning.ai 深度学习课程 Neural Networks and Deep Learning 第一周总结

SCINet:Time Series Modeling and Forecasting with Sample Convolution and Interaction学习记录

每日道代码题001- PYTHON基础复习

HTTP接口抓包工具之Fiddler

算法系列学习[kuangbin带你飞]专题十二 基础DP1 B - Ignatius and the Princess IV