requests如何构造复杂的post请求?

乙醇 创建于 about 7 years 之前

最后更新: less than a minute 之前

阅读数: 160

requests如何构造复杂的post请求?

默认情况下,在post方法中使用 data 关键字参数,Requests的行为会表现的像是在发送一个html表单,比如

>>> payload = {'key1': 'value1', 'key2': 'value2'}

>>> r = requests.post("http://httpbin.org/post", data=payload)
>>> print(r.text)
{
  ...
  "form": {
    "key2": "value2",
    "key1": "value1"
  },
  ...
}

如果需要为多个元素使用同一key的话,可以在data中传入元组,比如

>>> payload = (('key1', 'value1'), ('key1', 'value2'))
>>> r = requests.post('http://httpbin.org/post', data=payload)
>>> print(r.text)
{
  ...
  "form": {
    "key1": [
      "value1",
      "value2"
    ]
  },
  ...
}

如果 data 中传的是string而不是dict的话,那么字符串将会被直接发送出去

>>> import json

>>> url = 'https://api.github.com/some/endpoint'
>>> payload = {'some': 'data'}

>>> r = requests.post(url, data=json.dumps(payload))

因为现在很多api接受json字符串格式的post data,Requests为这种方式提供了更简单的写法

>>> url = 'https://api.github.com/some/endpoint'
>>> payload = {'some': 'data'}

>>> r = requests.post(url, json=payload)
0

相关课程

博客合集
图文
博客合集

课程分类: 测试工具 软件测试基础

当年的一些博文

  • 已完结
  • 已更新154集
  • 最后更新时间: 2024-03-19 22:02:16

免费

查看详情
mockito简明教程
图文
mockito简明教程

课程分类: 测试工具

mock工具

  • 已完结
  • 已更新7集
  • 最后更新时间: 2024-03-18 12:50:29

免费

查看详情
Locust实用教程
图文
Locust实用教程

课程分类: 性能测试 测试工具

python语言实现的非常出色性能测试工具

  • 已完结
  • 已更新9集
  • 最后更新时间: 2024-03-18 12:24:59

免费

查看详情
python接口测试实践教程
图文
python接口测试实践教程

课程分类: 接口测试

带你学python接口测试

  • 已完结
  • 已更新10集
  • 最后更新时间: 2024-03-18 12:34:07

免费

查看详情