requests--发送请求

1. 简介

Python的requests库是一个用来发送HTTP请求的第三方库,它简化了与HTTP服务器之间的通信过程。它提供了简洁的API,使得发送GET、POST、PUT、DELETE等请求变得非常容易。requests库同样也支持文件上传、Cookies和会话管理等功能,因此非常适合与Web API进行交互。

2. 安装requests

2.1 在命令行中安装

可以使用pip命令在命令行中安装requests库:

pip install requests

2.2 在Python解释器中安装

在Python解释器中安装requests库,可以使用以下命令:

import requests

3. 发送GET请求

requests库提供了get方法来发送GET请求。下面是一个使用GET请求获取网页内容的例子:

import requests

response = requests.get("https://api.github.com")

print(response.text)

代码中,我们使用了requests.get方法发送了一个GET请求,请求https://api.github.com这个网址,并将响应的内容打印出来。response对象包含了服务器返回的所有内容,可以通过response.text来获取响应的内容。

4. 发送POST请求

requests库还提供了post方法来发送POST请求。下面是一个使用POST请求提交表单数据的例子:

import requests

data = {

'name': 'John',

'age': 30

}

response = requests.post("https://httpbin.org/post", data=data)

print(response.text)

在这个例子中,我们定义了一个data字典,包含了要提交的表单数据。然后使用requests.post方法发送POST请求,请求https://httpbin.org/post这个网址,并将表单数据作为请求的主体发送到服务器上。

5. 设置请求头

requests库允许你设置请求头,以满足服务器的要求。下面是一个示例:

import requests

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'

}

response = requests.get("https://www.google.com", headers=headers)

print(response.text)

在这个例子中,我们定义了一个headers字典,指定了User-Agent这个请求头。然后使用requests.get方法发送GET请求,并将headers作为参数传递进去。

6. 处理响应

在发送请求后,我们通常需要对服务器的响应进行处理。requests库提供了多种方法来处理响应,包括获取响应的内容、状态码、响应头等。

6.1 获取响应的内容

可以使用response.text来获取响应的内容:

import requests

response = requests.get("https://api.github.com")

content = response.text

上述代码中,我们将响应的内容赋值给了content变量。

6.2 获取状态码

可以使用response.status_code来获取响应的状态码:

import requests

response = requests.get("https://api.github.com")

status_code = response.status_code

上述代码中,我们将响应的状态码赋值给了status_code变量。

6.3 获取响应头

可以使用response.headers来获取响应的头部信息:

import requests

response = requests.get("https://api.github.com")

headers = response.headers

上述代码中,我们将响应的头部信息赋值给了headers变量。

7. 错误处理

在发送请求的过程中,可能会出现一些错误,例如请求超时、连接错误等。requests库提供了异常处理机制,方便我们捕获和处理这些错误。

以下是一个示例,演示了如何捕获异常:

import requests

try:

response = requests.get("https://www.invalidurl.com", timeout=5)

print(response.text)

except requests.exceptions.RequestException as e:

print("An error occurred:", e)

上述代码中,我们使用了try-except语句块来捕获并处理异常。如果发生了异常,会执行except语句块中的代码。

总结

本文介绍了使用requests库发送HTTP请求的基本方法和常用功能。我们可以使用requests.get发送GET请求,requests.post发送POST请求;可以设置请求头,处理响应内容、状态码和响应头;还可以处理请求过程中的异常。requests库非常简单易用,是进行HTTP请求的首选工具。

后端开发标签