查看原文
其他

接口测试 23 requests基础入门二

苦叶子 开源优测 2022-11-13

点击上方蓝字“开源优测”一起玩耍

概述

继续requests基础分享,本文主要分享以下内容:

  • 请求头定制

  • POST请求

请求头定制示例

在requests中想要为请求添加自定义头信息,只需要简单的传入一个dict(即python字典类型对象)即可。

下面我们看一个简单的示例:

#-*- coding:utf-8 -*-__author__ = "苦叶子"# 导入模块import requestsif __name__ == "__main__":    print("开源优测 - requests自定义请求头基本示例")    url = "http://www.baidu.com"    # 定义自定义请求头数据    headers = {        "user-agent": "www.testingunion.com",        "custom-head": "DeepTest"    }    # 发送带自定义头的请求    r = requests.get(url, headers=headers)

将上述代码保存至requests_headers_demo.py中,执行以下命令:

注:所有的header值必须是string、bytestring或unicode,虽然传递unicode header是允许的,但不建议这样做

python requests_headers_demo.py

在运行上述命令前,先启动wireshark,用来抓取报文,看下我们自定义的headers是否正常被设置。

抓取的报文如下:


从报文来看,我们的设置是成功的,这说明了requests的机制是多么的简洁有效。

POST请求示例

下面我们看看requests如何发送HTTP POST请求的。

基本示例

#-*- coding:utf-8 -*-

__author__ = "苦叶子"


import requests

if __name__ == "__main__":    print("requests post示例")    

   # 目标url    url = "http://httpbin.org/post"    # 请求头headers    headers = {"custom-header": "mypost"}    

   # 要post的数据
   data = {"data_1": "deeptest", "data_2": "testingunion.com"}    
   
   # 发送post请求    r = requests.post(url, data=data, headers=headers)    
   
   # 输出结果    print(r.text)

将上述代码保存到requests_post_demo.py中,执行下述命令运行:

python requests_post_demo.py

用wireshark抓取上述自定义了header和data的报文如下:

post json数据示例

下面我们看看如何postjson数据到服务。

#-*- coding:utf-8 -*-

__author__ = "苦叶子"

import
requests

if
__name__ == "__main__":    print("requests post json数据示例")    

   # 目标服务url
   url = "http://jsonplaceholder.typicode.com/posts"    # 自定义头    headers = {        
       "custom-post"
: "my-post",        
       "custom-header"
: "my-json-header"        }    

   # 要post的数据    json_data = {        
       "title": "deeptest",        
       "body"
: "开源优测",        
       "userId"
: "1"        }    
       
   # post json格式的数据    r = requests.post(url, json=json_data, headers=headers)    
   
   # 打印下返回结果    print(r.text)

将上述代码保存到requests_post_json_demo.py中,执行下述命令运行:

python requests_post_json_demo.py

对上述代码执行,使用wireshark对http报文进行抓包如下:

 

开源优测

分享软件测试开源技术、经验、方案的首发平台

长按二维码/微信扫描 关注开源优测

QQ群:260407012

苦叶子私人微信:liyimin1912

有问题,可留言或加好友进微信群

苦叶子原创文章首发平台



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存