1. 首页
  2. 技术文章
  3. Python

Python中如何发送HTTP请求: “requests”库详解

Python中如何发送HTTP请求:requests库详解 概述 在Python中,我们可以使用requests库来发送HTTP请求并与服务器进行通信。requests库是一个方便且功能强大的HTTP请求库,它使我们能够以简洁和直观的方式处理HTTP请求和响应。 安装requests库 要使用requests库,首先需要安装它。可以通过在终端中运行以下命令来安装requests库: pip install requests 发送GET请求 发送GET请求是最常见的HTTP请求之一。使用requests库,可以非常简单地发送GET请求并获取服务器响应。 首先,需要导入requests库: python import requests 然后,可以使用`requests.get()`方法发送GET请求。以下是发送GET请求并获取响应的示例代码: python response = requests.get('https://api.example.com') 上述代码将向`https://api.example.com`发送GET请求,并将响应存储在名为`response`的变量中。 发送POST请求 发送POST请求通常用于在服务器上创建新资源、提交表单数据等。使用requests库,可以轻松地发送POST请求,并将数据作为请求体发送到服务器。 要发送POST请求,可以使用`requests.post()`方法。以下是一个示例代码: python payload = {'username': 'myusername', 'password': 'mypassword'} response = requests.post('https://api.example.com/login', data=payload) 上述代码向`https://api.example.com/login`发送了一个带有用户名和密码的POST请求,并将响应存储在`response`变量中。 处理响应 一旦发送了HTTP请求,将获得一个响应对象,其中包含服务器返回的所有相关信息。可以使用响应对象来访问这些信息。 以下是一些常见的响应对象方法和属性: - `response.text`:以字符串形式返回响应的内容。 - `response.status_code`:返回响应的状态码。 - `response.headers`:返回一个包含响应头的字典。 示例代码: python response = requests.get('https://api.example.com') print(response.text) print(response.status_code) print(response.headers) 上述代码将输出响应的文本内容、状态码和头部信息。 请求头和参数 在发送HTTP请求时,有时需要添加一些请求头或查询参数。使用requests库,可以方便地在请求中添加这些信息。 以下是设置请求头和查询参数的示例代码: python headers = {'User-Agent': 'Mozilla/5.0'} params = {'key1': 'value1', 'key2': 'value2'} response = requests.get('https://api.example.com', headers=headers, params=params) 上述代码将设置了一个请求头`User-Agent`和两个查询参数`key1`和`key2`,并将它们作为参数传递给`requests.get()`方法。 处理异常 在发送HTTP请求时,可能会出现一些异常情况,如无法访问服务器、请求超时等。为了更好地处理这些异常,可以使用try/except块来捕获并处理它们。 以下是一个处理请求异常的示例代码: python import requests try: response = requests.get('https://api.example.com') response.raise_for_status() # 检查是否有错误状态码 except requests.exceptions.RequestException as e: print('请求异常:', e) 上述代码通过`raise_for_status()`方法检查响应的状态码,如果状态码指示错误,则会引发一个异常。 总结 通过使用requests库,我们可以轻松地发送HTTP请求并与服务器进行通信。本文介绍了requests库的一些常用功能和用法,包括发送GET和POST请求、处理响应、设置请求头和查询参数以及处理异常。请记住,在实际使用时,可能需要根据具体的需求和情况进行适当的配置和调整。
Read in English