Python使用Requests库发送GET请求完整指南

唐可
唐可
发布时间:2026-10-14 | 3人浏览过
原创

本文详细介绍Python中Requests库的安装方法及发送GET请求的核心用法。涵盖无参与有参请求、状态码与响应体(text/content)的区别、自动解码机制,以及response对象常用属性如headers、json()和raise_for_status()的实战应用,帮助开发者快速掌握接口测试基础。

Python Requests库简介与功能特性

简介

若需使用Python进行接口测试,必须掌握一个关键的第三方模块:Requests。尽管Python标准库中内置了urllib模块用于访问网络资源,但其操作相对繁琐,且缺乏许多实用的高级功能。相比之下,使用

requests库是更优的选择。作为Python的第三方库,它处理URL资源极为便捷。如需了解其丰富的高级功能,可访问中文官网:http://cn.python-requests.org/zh_CN/latest/index.html 或英文官网:http://www.python-requests.org/en/master/。

功能特性

Requests完全满足当前Web开发的需求。

  • 支持Keep-Alive及连接池复用
  • 支持国际化域名(IDN)和URL
  • 支持带有持久Cookie的会话对象
  • 实现浏览器式的SSL认证
  • 支持自动内容解码
  • 提供基本/摘要式的身份认证
  • 优雅处理key/value形式的Cookie
  • 支持自动解压压缩内容
  • 返回Unicode编码的响应体
  • 支持HTTP(S)代理设置
  • 支持文件分块上传
  • 支持流式下载大文件
  • 可设置连接超时时间
  • 支持分块请求
  • 支持.netrc配置文件

Requests库的环境安装与版本管理

环境安装(安装requests)

如果您已安装Anaconda,requests模块通常已预装可用。否则,需要在命令行中通过pip进行安装:


pip install requests

注意:pip工具容易自动升级版本,

方法1:检测并更新


pip list –outdated

方法2:

♦先卸载旧版本:


pip uninstall packagename

♦然后使用:easy_install.exe安装


easy_install.exe pip

当出现Installing collected packages: idna, chardet, certifi, requests时

若显示Successfully installed certifi-2019.3.9 chardet-3.0.4 idna-2.8 requests-2.21.0,则说明requests模块安装成功!

发送GET请求:无参与有参请求实战

使用requests(get请求无参数param)

1、导入安装好的requests模块后,通过GET方法访问一个URL地址,例如:https://www/douban.com

2、变量r代表response,即请求后的返回值。可以通过调用response的status_code属性来查看HTTP状态码。

3、状态码200仅表示服务器地址可达,并不代表功能正常。通常需查看响应内容,r.text用于获取返回的文本信息。

看吧!这就是requests的强大之处,看起来是否既神奇又高效:

使用requests(get请求有参数param)

1、发送一个带参数的GET请求,例如在豆瓣网搜索“西游记”,URL地址为:https://www.douban.com/search?q=西游记

2、请求参数q=西游记,可以以字典形式传递:{"q": "西游记"}

3、多个参数的格式示例:{"key1": "value1", "key2": "value2", "key3": "value3"}

这部分最容易出错的地方在于:1、豆瓣网址后遗漏了/search路径;2、错误地将参数名写成param而非params。

响应体处理:Text与Content的区别及高级属性

使用request(get获取响应文本content)

1、若使用r.text访问豆瓣网首页,可能会发现内容出现乱码,因为豆瓣首页响应内容是经过gzip压缩的(非纯text文本)。

2、如果在Fiddler工具中看到乱码,点击后可手动解码;在代码中可以使用r.content方法,content会自动解码gzip和deflate压缩(这正是前文提到的requests高级功能:自动解码和自动解压)。

附录response返回的其他信息

1、response的返回内容(content)还包含其他更多信息。

-- r.status_code #响应状态码

-- r.content #字节方式的响应体,会自动为你解码gzip和deflate压缩

-- r.headers #以字典对象存储服务器响应头,但该字典较为特殊,键不区分大小写,若键不存在则返回None

-- r.json() #Requests内置的JSON解码器,对于特定类型的响应(如JSON),可直接获取解析后的对象

-- r.url #获取请求的URL

-- r.encoding #编码格式,requests会自动检测编码

-- r.cookies #获取Cookie

-- r.raw #返回原始响应体-- r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码

-- r.raise_for_status() #若请求失败(非200响应),则抛出异常

小结

使用requests发送GET请求的接口就是这么简单!想要掌握的同学请赶快行动,动手敲代码,你可以用自己的博客园站点进行练习。

到此这篇关于python 发送get请求接口详解的文章就介绍到这了,更多相关python 发送get请求接口内容请搜索本站以前的文章或继续浏览下面的相关文章,希望大家以后多多支持本站!

原文地址:https://www.cnblogs.com/du-hong/p/10557042.html

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表