欢迎访问宙启技术站
智能推送

“Python中如何使用requests库发送HTTP请求”

发布时间:2023-05-31 16:07:58

在Python中,requests库是一个常用的HTTP请求库,可用于发送HTTP请求。这个库可以轻松发送HTTP/1.1请求,并自动处理连接池、下游代理、cookie等问题。requests库是在Python标准库的基础上构建的,因此使用非常简单。下面我们将简单介绍如何使用requests库发送HTTP请求。

首先,我们需要安装requests库。在cmd中输入以下命令来安装:

pip install requests

requests库安装完成后,我们可以在Python文件中引入该库:

import requests

requests库提供了多种HTTP请求方法,包括GET、POST、PUT、DELETE、HEAD、PATCH,下面我们将一一介绍。

## 1. GET请求

发送GET请求的方法为requests.get(),示例代码如下:

import requests

url = 'https://www.baidu.com'
response = requests.get(url)

print(response.content)

该代码发送了一个GET请求到百度,然后将结果以字节形式打印出来。我们可以看到,response.content返回的是一个字节对象,表示响应内容。

requests.get()方法有多个参数,其中比较常用的有params、headers和timeout:

- params:请求参数,可以是字典或字符串格式。

- headers:请求头,可以是字典格式。

- timeout:请求超时时间,单位为秒。

举个例子,我们可以对百度搜索一下“Python”,代码如下:

import requests

url = 'https://www.baidu.com/s'
params = {'wd': 'Python'}
headers = {'User-Agent': 'Mozilla/5.0'}
timeout = 5

response = requests.get(url, params=params, headers=headers, timeout=timeout)

print(response.content)

该代码发送了一个GET请求,url变量指定了请求的URL,params变量指定了请求参数,headers变量指定了请求头,timeout变量指定了超时时间,请求结果和上面的例子类似。

## 2. POST请求

与GET请求类似,requests库也支持POST请求。发送POST请求的方法为requests.post(),示例代码如下:

import requests

url = 'http://httpbin.org/post'
data = {'name': 'Mike', 'age': 18}
headers = {'User-Agent': 'Mozilla/5.0'}

response = requests.post(url, data=data, headers=headers)

print(response.json())

该代码发送了一个POST请求到httpbin.org/post,data变量指定了请求参数,headers变量指定了请求头,这里我们还使用了response.json()方法来将响应内容转换为JSON格式的字典对象,打印出来看一下。

requests.post()方法的参数与requests.get()方法类似,同时还有files参数可以用于上传文件。

## 3. PUT请求

PUT请求与POST请求类似,但语义有所不同。PUT操作是“幂等”的,即执行多次PUT操作的结果与执行一次PUT操作的结果相同。发送PUT请求的方法为requests.put(),示例代码如下:

import requests

url = 'http://httpbin.org/put'
data = {'name': 'Mike', 'age': 21}
headers = {'User-Agent': 'Mozilla/5.0'}

response = requests.put(url, data=data, headers=headers)

print(response.json())

该代码发送了一个PUT请求到httpbin.org/put,data变量指定了请求参数,headers变量指定了请求头,我们同样使用response.json()方法获取响应内容。PUT方法的参数与POST方法相似。

## 4. DELETE请求

DELETE请求用于删除指定的资源。发送DELETE请求的方法为requests.delete(),示例代码如下:

import requests

url = 'http://httpbin.org/delete'
headers = {'User-Agent': 'Mozilla/5.0'}

response = requests.delete(url, headers=headers)

print(response.json())

该代码发送了一个DELETE请求到httpbin.org/delete,headers变量指定了请求头,我们同样使用response.json()方法获取响应内容。

## 5. HEAD请求

HEAD请求用于获取指定资源的头部信息,与GET请求类似,但不会返回响应体。发送HEAD请求的方法为requests.head(),示例代码如下:

import requests

url = 'https://www.baidu.com'
headers = {'User-Agent': 'Mozilla/5.0'}

response = requests.head(url, headers=headers)

print(response.headers)

该代码发送了一个HEAD请求到百度,headers变量指定了请求头,我们可以使用response.headers属性获取响应头信息。

## 6. PATCH请求

PATCH请求用于对指定资源进行部分更新,与PUT请求相比,PATCH请求更加精细化。发送PATCH请求的方法为requests.patch(),示例代码如下:

import requests

url = 'http://httpbin.org/patch'
data = {'name': 'Mike', 'age': 30}
headers = {'User-Agent': 'Mozilla/5.0'}

response = requests.patch(url, data=data, headers=headers)

print(response.json())

该代码发送了一个PATCH请求到httpbin.org/patch,data变量指定了请求参数,headers变量指定了请求头。PATCH方法的参数与PUT方法相似。

综上所述,requests库提供了多种HTTP请求方法,而且使用非常方便。有了这个库,我们可以轻松实现各种有趣的HTTP请求功能。