Requests传递 URL 参数:

你也许经常想为 URL 的查询字符串(query string)传递某种数据。如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的后面。例如,http://www.bcbxhome.com/bcbxxy/search.php?key=val

Requests 允许你使用 params 关键字参数,以一个字符串字典来提供这些参数。举例来说,如果你想传递 key1=value1 和 key2=value2 到http://www.bcbxhome.com/bcbxxy/search.php,那么你可以使用如下代码:

  1. >>> payload = {'key1': 'value1', 'key2': 'value2'}
  2. >>> r = requests.get(" http://www.bcbxhome.com/bcbxxy/search.php", params=payload)

复制代码

实战操作一下吧:

  1. >>>payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': '接口自动化'}
  2. >>>r = requests.get(" http://www.bcbxhome.com/bcbxxy/search.php", params=payload)

复制代码

通过打印输出该 URL,你能看到 URL 已被正确编码:

  1. >>> print(r.url)
  2. http://www.bcbxhome.com/bcbxxy/search.php?mod=forum&searchid=8&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96

复制代码

注意字典里值为 None 的键都不会被添加到 URL 的查询字符串里。

  1. >>>payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': None}
  2. >>> r = requests.get('http://httpbin.org/get', params=payload)
  3. >>> print(r.url)
  4. http://www.bcbxhome.com/bcbxxy/search.php?mod=forum&searchid=8&orderby=lastpost&ascdesc=desc&searchsubmit=yes

复制代码
你还可以将一个列表作为值传入:

  1. >>> payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': ['接口','自动化']}
  2. >>> r = requests.get('http://httpbin.org/get', params=payload)
  3. >>> print(r.url)
  4. http://www.bcbxhome.com/bcbxxy/search.php?mod=forum&searchid=8&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=%E6%8E%A5%E5%8F%A3&kw=%E8%87%AA%E5%8A%A8%E5%8C%96

复制代码

完整代码如下:

  1. import requests
  2. payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': '接口自动化'}
  3. result = requests.get(" http://www.bcbxhome.com/bcbxxy/search.php", params=payload)
  4. print(result.url)
  5. payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': None}
  6. result = requests.get(" http://www.bcbxhome.com/bcbxxy/search.php", params=payload)
  7. print(result.url)
  8. payload = {'mod': 'forum', 'searchid': '8', 'orderby': 'lastpost', 'ascdesc': 'desc', 'searchsubmit': 'yes', 'kw': ['接口','自动化']}
  9. result = requests.get(" http://www.bcbxhome.com/bcbxxy/search.php", params=payload)
  10. print(result.url)

复制代码

对应结果如下:

  1. http://www.bcbxhome.com/bcbxxy/search.php?mod=forum&searchid=8&orderby=lastpost&ascdesc=desc&searchsubmit=yes&kw=%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E5%8C%96
  2. http://www.bcbxhome.com/bcbxxy/s ... sc&searchsubmit=yes
  3. http://www.bcbxhome.com/bcbxxy/s ... A%E5%8A%A8%E5%8C%96

复制代码

有没有疑问为啥kw后面的汉字变成了%+英文+数字?

这个叫url编码,这里就不展开细讲了可以去这里尝试一下http://www.jsons.cn/urlencode/

requests payload_python+Requests接口自动化测试之传递 URL 参数相关推荐

  1. php url传递参数_python+Requests接口自动化测试之传递 URL 参数

    Requests传递 URL 参数: 你也许经常想为 URL 的查询字符串(query string)传递某种数据.如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的 ...

  2. url中传递url参数|url中特殊字符、?、=无法解析问题

    url中传递url参数|url中特殊字符&.?.=无法解析问题 1.微信小程序报错:SyntaxError: Unexpected end of JSON input 2.错误场景复现 3.错 ...

  3. 【接口自动化学习笔记】python+requests+excel实现接口自动化

    文章内容参考:pytest+requests+Excel+allure接口自动化测试框架实践_JJJims的博客-CSDN博客 功能        excel驱动的接口自动化+邮件发送 背景 参考了上 ...

  4. 【30天学会接口自动化测试】接口自动化测试之框架设计(五)

    整理了一些软件测试方面的资料.面试资料(接口自动化.web自动化.app自动化.性能安全.测试开发等),有需要的小伙伴可以文末加入我的学习交流qun,无套路自行领取~ 如果有100个测试用例,重复的去 ...

  5. 【30天学会接口自动化测试】接口自动化测试之实际项目做接口测试(6)

    整理了一些软件测试方面的资料.面试资料(接口自动化.web自动化.app自动化.性能安全.测试开发等),有需要的小伙伴可以文末加入我的学习交流qun,无套路自行领取~ 1.从实际项目出发分析测试结果处 ...

  6. 接口自动化测试之Mock

    一.Mock实现原理和实现机制 在某些时候,后端在开发接口的时候,处理逻辑非常复杂,在测试的时候,后端在未完成接口的情况下该如何去测试呢? 我们需要测试,但是有些请求又需要修改一下参数,或者改变一下r ...

  7. jemeter python接口自动化测试平台_python接口自动化测试之request

    之前小编写过Rest-assuert接口测试框架,它是基于java的,那么怎么轻轻松松玩转python接口自动化测试呢?今天小编就写写如何使用python Request进行接口自动测试. 学习任何一 ...

  8. 接口自动化测试之pytest用例管理框架

    一.pytest用例管理框架 文档:https://docs.pytest.org/en/latest/contents.html#toc 第三方库:https://pypi.org/search/? ...

  9. 接口自动化测试之接口测试基础

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 文章目录 一.分层的自动化测试 1.传统自动化测试 2.测试金字塔 3.分层自动化测试 二.接口测试基础知识 1.接口的含义 2. ...

最新文章

  1. python集合中的元素不允许重复对吗_python字典中的值为什么不允许重复
  2. elegance suites bangkok info
  3. linux命令 - free -m
  4. LINUX下使用elasticsearch-jdbc工具实现MySQL同步到ElasticSearch 以及linux 64位centos系统安装jdk1.8
  5. 将存储过程的结果插入表里
  6. docker 删除image_如何用两个小时入门 Docker?
  7. php读数据库json编码,php json编码和mysql数据库注意事项 定期更新
  8. c#类属性和实例属性_C#中类的序列化及反序列化简要分析
  9. 小米6.0以上系统怎么无需root激活Xposed框架的步骤
  10. NoSQL之MongoDB安装
  11. Mac M1 安装 iTerm2+Oh My Zsh+zsh-syntax-highlighting 真香!
  12. 利尔达携手紫光展锐重磅发布5G R16模组,领跑5G To B新纪元
  13. 阴天快乐 -- 陈奕迅(eason)
  14. Nod32升级服务器(转)
  15. execve系统调用_系统调用execve的入口sys_execve() | 学步园
  16. Linux下视频转换工具:转换,切割,连接,
  17. Ansys电磁仿真套件的场路协同仿真
  18. 联想电脑,Windows11系统,键盘突然无法输入
  19. 2021年幼儿教师结构化面试:小朋友不乖,怎么与家长沟通?
  20. 在ArcGIS中创建Python工具(一)

热门文章

  1. Apache服务器 配置多个网站解决方案
  2. mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案
  3. 使用SpringMVC解决Ajax跨域问题
  4. ORA-00907: 缺失右括号问题整理解决
  5. 在MySQL中的特定列之后添加多个列
  6. 如何在JavaScript / jQuery中查找数组是否包含特定字符串? [重复]
  7. Java Hashmap:如何从价值中获取关键?
  8. 如何为“选择”框创建占位符?
  9. 《微服务设计》读书笔记
  10. struts2的执行过程