requests 接口测试入门

python接口测试入门

一、requests库安装

二、http请求类型

  • get: 获取资源
  • post :增加资源
  • put: 修改资源
  • delete: 删除资源
  • head: 查看响应头
  • options: 查看可用请求方法

三、Content-Type编码方式

  • application/x-www-form-urlencoded

    默认地,表单数据会编码为 “application/x-www-form-urlencoded”。就是说,在发送到服务器之前,所有字符都会进行编码,空格转换为 “+” 加号,特殊符号转换为 ASCII HEX 值。 窗体数据被编码为:名称/值对,这是标准的编码格式。

  • application/json
    数据以json形式进行编码

  • multipart/form-data
    窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,上传附件用到。在使用包含文件上传控件的表单时,必须使用该值。

  • text/html
    文本方式的网页文件。

  • text/xml
    文本方式的xml文件,text/xml忽略xml头所指定编码格式而默认采用US-ASCII编码。

  • text/plain
    窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。空格转换为 “+” 加号,但不对特殊字符编码。

  • application/xml
    数据以xml形式进行编码,application/xml会根据xml头指定的编码格式来编码。

四、get请求

  • 语法
  • 参数
    • url
      调用接口地址
      如:url=“http://httpbin.org/get”
    • params
      为可选参数,该参数是一个字典类型,数据会以键/值对的形式置于 URL 中,跟在一个问号的后面
      如: https://api.github.com/eventsey1=value1&key2=value2
    • **kwargs
      其他可选参数
      如headers,files,cookies,auth,timeout,json等
    • headers
      请求头信息,与浏览器交互的参数
  • 代码演示
    import requests
    import pprint
    get_url=‘http://httpbin.org/get’
    get_params={‘key1’:‘value1’,‘key2’:‘value2’}
    res=requests.get(url=get_url,params=get_params)
    pprint.pprint(res.json())

五、post请求

  • 语法

  • 参数

    • url
      调用接口地址
      如:url=“http://httpbin.org/post”
    • data
      为可选参数
      如:字典、元组列表、字节或类似文件
    • json
      可选参数,json数据
    • **kwargs
      其他可选参数
      如headers,files,cookies,auth,timeout,json等
    • headers
      请求头信息,与浏览器交互的参数
    • data与json区别
      • 传入dict,不设置content-type值
        data:默认使用 application/x-www-form-urlencoded 编码方式处理
        json:默认使用 application/json 编码方式处理
      • 传入dict,设置content-type值
        data&json 都按照设置的编码方式处理
  • 代码演示
    import requests
    import pprint
    #data接收,传入dict,不设置content-type值
    post_url=‘http://httpbin.org/post’
    post_data={‘key1’:‘value1’,‘key2’:‘value2’}
    res=requests.post(url=post_url,data=post_data)
    pprint.pprint(res.json())

    import requests
    import pprint
    #json接收,传入dict,不设置content-type值
    post_url=‘http://httpbin.org/post’
    post_data={‘key1’:‘value1’,‘key2’:‘value2’}
    res=requests.post(url=post_url,json=post_data)
    pprint.pprint(res.json())

    import requests
    import pprint
    #data接收,传入dict,设置content-type:application/json
    post_url=‘http://httpbin.org/post’
    post_data={‘key1’:‘value1’,‘key2’:‘value2’}
    header={‘Content-type’:‘application/json;charset=UTF-8’}
    res=requests.post(url=post_url,data=post_data,headers=header)
    pprint.pprint(res.json())

    import requests
    import pprint
    #json接收,传入dict,设置content-type:application/x-www-form-urlencoded
    post_url=‘http://httpbin.org/post’
    post_data={‘key1’:‘value1’,‘key2’:‘value2’}
    header={‘Content-type’:‘application/x-www-form-urlencoded;charset=UTF-8’}
    res=requests.post(url=post_url,json=post_data,headers=header)
    pprint.pprint(res.json())

六、POST与GET区别

  • 参数传递
    GET:从服务器获取数据,将数据按照variable=value的形式,添加到行为所指向的URL后面,并且两者使用“连接, 而各个变量之间使用“&”连接
    POST:向服务器传送数据,将表单中的数据放在请求体中,按照变量和值相对应的方式传递。

  • 长度限制
    GET:GET是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。
    实际上HTTP协议对URL长度是没有限制的,限制URL长度大多数是浏览器或者服务器的配置参数。
    POST:HTTP协议没有对POST进行任何限制,一般是受服务器配置限制或者内存大小。
    可以通过修改配置文件来设置。

  • 安全性
    GET:GET请求参数放在URL后面,可以直接看到,明文传输。

    POST:POST请求参数放在请求体里面,需要通过抓包工具或者浏览器调试模式才能看到。

  • 幂等性
    幂等主要是为了处理同一个请求重复发送的情况。
    比如在请求响应前失去连接,如果方法是幂等的,重复发送对结果没有影响。
    通常情况下GET请求是幂等的,POST请求非幂等的。

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树网络爬虫requests211691 人正在系统学习中

来源:勇敢的打工人海励

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月6日
下一篇 2022年2月6日

相关推荐