首页
学习
活动
专区
圈层
工具
发布
28 篇文章
1
一篇文章让你入门API测试
2
[接口测试 - 基础篇] 01 你应该了解的协议基础
3
[接口测试 - 基础篇] 02 你应该掌握的Python3接口测试内功
4
[接口测试 - 基础篇] 03 unittest测试框架了解多少才够?
5
[接口测试 - 基础篇] 04 无法绕过的json解析
6
[接口测试 - 基础篇] 05 好讨厌的xml解析
7
[接口测试 - 基础篇] 06 好吧也来解析下html
8
[接口测试 - 基础篇] 07 来来来,一起读写excel玩玩之一
9
[接口测试 - 基础篇] 08 封装个基本的excel解析类
10
[接口测试 - 基础篇] 09 其实吧,读写csv格式也是要掌握的
11
[接口测试 - 基础篇] 10 别啊,还有INI格式呢,别忘记我
12
[接口测试 - 基础篇] 11 掌握下python解析YAML格式也是需要的
13
[接口测试 - 基础篇] 12 还是要掌握python日志管理模块的
14
[接口测试 - 基础篇] 13 写在接口测试基础篇完结时
15
[接口测试 - http.client篇] 14 源码初探及其工作机制分析
16
[接口测试 - http.client篇] 15 常用API说明及基本的示例
17
[接口测试 - http.client篇] 16 基于http.client之POM实战一下
18
[接口测试 - http.client篇] 17 http.client之入门级接口测试框架
19
接口测试 | urllib篇 18 urllib介绍
20
接口测试 | urllib篇 19 urllib基本示例
21
[接口测试 -基础篇] 20 用flask写一个简单server用于接口测试
22
接口测试 | 21 基于flask弄个restful API服务出来
23
接口测试 | 22 requests基础入门
24
接口测试 23 requests基础入门二
25
接口测试 | 24 requests + unittest集成你的接口测试
26
接口测试 | 25 requests + pytest测试实例
27
接口测试 | 26 基础及简要验证清单
28
接口测试 | 27 HTTP接口详细验证清单

接口测试 23 requests基础入门二

概述

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

  • 请求头定制
  • POST请求

请求头定制示例

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

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

代码语言:javascript
复制
#-*- 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请求的。

基本示例

代码语言:javascript
复制
#-*- 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数据到服务。

代码语言:javascript
复制
#-*- 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报文进行抓包如下:

下一篇
举报
领券