• 接口自动化:四.发送post请求


    前言

    平时工作过程中,最常见http和https使我们最常见的两种协议。https的请求相对于http来说安全级别高,但是需要验证ssl证书。

    ssl证书验证

    关闭fddler,调试的时候加参数verify=false,添加以下代码,https协议可以正常访问。

    Import urllib3        #使用这个方法就可以了
    
    Urllib3.disbale_warnings()   #忽略警告

     常见post请求

    Post请求参数一部分在url里,另一部分可以再body里面,常见的有四种:

    1.第一种:application/json{“key1”:”value1”,”key2”:”value2”}

       json={}

    2.第二种:application/x-www-form-urlencodedname1= value1&name2=value2

       data=

    3.第三种:multipart/form-data:这一种是表单格式的

    (文件上传 file=,图片上传等混合式)

       data=

    4. Content-Type:octets/stream

    (文件下载)

       data=

    5.text/xml

       data=

    Post的请求body是可以没有的,比如下面这个post接口,参数都在url上,这种post请求不需要传body

    接口文档地址:https://www.juhe.cn/docs/api/id/39

      

    application/json

    bodyjson

    登录接口相关文档信息如下:

    访问地址:api/v1/login/

    请求方式:post

    请求头部:Content-Type:application/json

    请求参数示例:

    {"username":"test", "password":"123456"}

    返回示例

    {

    "code": 0,

    "msg": "login success!",

    "username": "test",

    "token": "cdaadd690209106dbea71e1f4c1e728cadfdd6a4"

    }

    当拿到接口文档你需要知道的事情:

    1.接口的服务器部署在哪个服务器上。

    Host地址,端口号

    2.对应数据库地址,最好能远程访问

    数据校对,数据库具体库名

    3.后台日志查询

    需要知道项目部署怎么查日志

    4.自动化之前先设计接口测试用例,先手工测试通过。

    bodyjson格式

     application/json 直接传json=data

     Bodyx-www-form-urlencoded

    接口文档示例

    访问路径: /api/v4/login

    请求方式:POST

    头部

    Content-Type: application/x-www-form-urlencoded

    请求参数示例:

    username=test1&password=123456 

    返回示例 

    {

    "code": 0,

    "msg": "login success!",

    "username": "test",

    "token": "cdaadd690209106dbea71e1f4c1e728cadfdd6a4"

    }

     

    datajson区分

    方法一:抓包看头部Content-Type参数:

    -- application/json   --------------------这种就是传json参数

    ---application/x-www-form-urlencode -------这种就是传data参数

    方法二:直接看参数长相

    ----{“name1”:”value1”, “name2”,”value2”}  ---这种传json

    -- name1=value1&name2=value2

    这种传data参数

    xml格式

     

    # 遇到编码报错时候,对body进行encode

  • 相关阅读:
    oracle中delete、truncate、drop的区别
    js获取当前日期时间
    Linux 命令大全
    oracle sql语言模糊查询
    ibatis<iterate>标签
    ibatis中使用like模糊查询
    编辑距离12 · Edit Distance12
    分割回文串 II · Palindrome Partitioning II
    单词拆分 I · Word Break
    300最长上升子序列 · Longest Increasing Subsequence
  • 原文地址:https://www.cnblogs.com/liushui0306/p/13157502.html
Copyright © 2020-2023  润新知