脚本编写面试题, 使用 Python 的 requests 库如何发送 HTTP 请求?
脚本编写面试题, 使用 Python 的 requests 库如何发送 HTTP 请求?
QA
Step 1
Q:: 如何使用 Python 的 requests 库发送一个 GET 请求?
A:: 要使用 Python 的 requests 库发送一个 GET 请求,可以使用以下代码:
import requests
response = requests.get('https://example.com')
print(response.status_code)
print(response.text)
这段代码发送了一个 GET 请求到 'https://example.com'
并打印响应的状态码和响应内容。
Step 2
Q:: 如何发送带有参数的 GET 请求?
A:: 可以在发送 GET 请求时通过 params
参数传递参数。例如:
import requests
params = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://example.com', params=params)
print(response.url)
这将生成一个包含参数的 URL,如 'https://example.com?key1=value1&key2=value2'
。
Step 3
Q:: 如何发送一个 POST 请求并传递数据?
A:: 可以使用 requests 库的 post
方法来发送 POST 请求,并通过 data
参数传递数据。例如:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://example.com', data=data)
print(response.status_code)
print(response.json())
这将发送一个 POST 请求,并传递表单数据。
Step 4
Q:: 如何发送带有 JSON 数据的 POST 请求?
A:: 发送带有 JSON 数据的 POST 请求,可以使用 json
参数传递 JSON 数据。例如:
import requests
json_data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://example.com', json=json_data)
print(response.status_code)
print(response.json())
这将发送一个带有 JSON 数据的 POST 请求。
Step 5
Q:: 如何处理 HTTP 请求的响应头?
A:: 可以通过响应对象的 headers
属性访问响应头。例如:
import requests
response = requests.get('https://example.com')
print(response.headers)
这将打印响应头的字典。
Step 6
Q:: 如何设置请求头?
A:: 可以通过 headers
参数设置请求头。例如:
import requests
headers = {'User-Agent': 'my-app/0.0.1'}
response = requests.get('https://example.com', headers=headers)
print(response.status_code)
这将发送带有自定义用户代理的请求。
用途
面试这些内容的目的是为了评估候选人对 HTTP 请求的基本理解和操作能力。requests 库是 Python 中非常流行的 HTTP 请求库,在网络爬虫、API 交互、Web 测试等领域都有广泛应用。掌握如何使用 requests 库进行各种 HTTP 请求是确保能够在实际生产环境中与其他服务或系统进行数据交换的基础能力。\n相关问题
DevOps 运维面试题, 使用 Python 的 requests 库如何发送 HTTP 请求?
QA
Step 1
Q:: 如何使用 Python 的 requests 库发送 GET 请求?
A:: 在 Python 中,使用 requests 库发送 GET 请求非常简单。你只需要导入 requests 模块,并使用 requests.get(url)
函数来发送请求。例如:
import requests
response = requests.get('http://example.com')
print(response.text)
这个代码将向 'http://example.com'
发送一个 GET 请求,并输出服务器返回的内容。
Step 2
Q:: 如何在使用 requests 库发送请求时添加请求头?
A:: 你可以通过传递一个字典形式的 headers 参数来向 requests.get 或 requests.
post 等方法添加请求头。例如:
import requests
headers = {'User-Agent': 'my-app/0.0.1'}
response = requests.get('http://example.com', headers=headers)
print(response.text)
这个代码向 'http://example.com' 发送请求时,会在请求头中包含 User-
Agent 信息。
Step 3
Q:: 如何使用 requests 库发送 POST 请求并提交数据?
A:: 你可以使用 requests.post(url, data=data)
来发送一个 POST 请求,其中 data 可以是一个字典或字符串。例如:
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('http://example.com', data=data)
print(response.text)
这个代码将向 'http://example.com' 发送一个 POST 请求,并提交数据 key1 和 key2
。
Step 4
Q:: 如何处理 requests 请求中的超时问题?
A:: 为了防止请求无限期地等待响应,你可以设置超时时间。使用 requests.get(url, timeout=5) 可以设置超时为 5
秒。例如:
import requests
try:
response = requests.get('http://example.com', timeout=5)
except requests.Timeout:
print('请求超时')
这个代码在请求 'http://example.com' 时,如果超过 5
秒仍未收到响应,将抛出超时异常并进行相应处理。