请求 - 处理请求


在本章中,我们将了解如何使用请求模块。我们将研究以下内容 -

  • 发出 HTTP 请求。
  • 将参数传递给 HTTP 请求。

发出 HTTP 请求

要发出 Http 请求,我们需要首先导入请求模块,如下所示 -

import requests 

现在让我们看看如何使用 requests 模块调用 URL。

让我们在代码中使用 URL - https://jsonplaceholder.typicode.com/users来测试请求模块。

例子

import requests
getdata = requests.get('https://jsonplaceholder.typicode.com/users')
print(getdata.status_code)

url - https://jsonplaceholder.typicode.com/users使用 requests.get() 方法调用。URL 的响应对象存储在 getdata 变量中。当我们打印变量时,它会给出 200 响应代码,这意味着我们已成功获得响应。

输出

E:\prequests>python makeRequest.py
<Response [200]>

要从响应中获取内容,我们可以使用getdata.content来执行此操作,如下所示 -

例子

import requests
getdata = requests.get('https://jsonplaceholder.typicode.com/users')
print(getdata.content)

getdata.content,将打印响应中的所有可用数据。

输出

E:\prequests>python makeRequest.py
b'[\n {\n  "id": 1,\n  "name": "Leanne Graham",\n  "username": "Bret",\n
"email": "Sincere@april.biz",\n  "address": {\n  "street": "Kulas Light
",\n  "suite": "Apt. 556",\n  "city": "Gwenborough",\n  "zipcode": "
92998-3874",\n  "geo": {\n "lat": "-37.3159",\n  "lng": "81.149
6"\n }\n },\n  "phone": "1-770-736-8031 x56442",\n  "website": "hild
egard.org",\n  "company": {\n "name": "Romaguera-Crona",\n  "catchPhr
ase": "Multi-layered client-server neural-net",\n  "bs": "harness real-time
e-markets"\n }\n }

将参数传递给 HTTP 请求

仅仅请求 URL 是不够的,我们还需要向 URL 传递参数。

参数大多作为键/值对传递,例如 -

 https://jsonplaceholder.typicode.com/users?id=9&username=Delphine

因此,我们的 id = 9 和用户名 = Delphine。现在,将了解如何将此类数据传递给 requests Http 模块。

例子

import requests
payload = {'id': 9, 'username': 'Delphine'}
getdata = requests.get('https://jsonplaceholder.typicode.com/users', 
params = payload)
print(getdata.content)

详细信息存储在键/值对中的对象有效负载中,并传递给 get() 方法内的 params。

输出

E:\prequests>python makeRequest.py
b'[\n {\n "id": 9,\n "name": "Glenna Reichert",\n "username": "Delphin
e",\n "email": "Chaim_McDermott@dana.io",\n "address": {\n "street":
"Dayna Park",\n "suite": "Suite 449",\n "city": "Bartholomebury",\n
"zipcode": "76495-3109",\n "geo": {\n "lat": "24.6463",\n
"lng": "-168.8889"\n }\n },\n "phone": "(775)976-6794 x41206",\n "
website": "conrad.com",\n "company": {\n "name": "Yost and Sons",\n
"catchPhrase": "Switchable contextually-based project",\n "bs": "aggregate
real-time technologies"\n }\n }\n]'

我们现在在响应中获取 id = 9 和 username = Delphine 详细信息。

如果您想查看传递参数后 URL 的外观,请使用 URL 的响应对象。

例子

import requests
payload = {'id': 9, 'username': 'Delphine'}
getdata = requests.get('https://jsonplaceholder.typicode.com/users', 
params = payload)
print(getdata.url)

输出

E:\prequests>python makeRequest.py
https://jsonplaceholder.typicode.com/users?id=9&username=Delphine