网络编程Python – HTTP 客户端
来自客户端的 HTTP 协议请求到达服务器并获取一些数据,假设它是一个有效的请求。可以使用请求模块提供的各种方法来分析来自服务器的响应。下面的一些方法提供有关从服务器发送到在客户端运行的Python程序的响应的信息:
获得初步回应
get()方法用于获取服务端使用的资源的基本信息。此函数从服务器获取数据并作为响应对象返回,该对象可以以简单的文本格式打印。
Python3
# Import libraries
import requests
# Sending Request
req = requests.get('https://www.geeksforgeeks.org/')
# Show results
print(req.text[:2000])
Python3
# Import Libraries
import requests
# Creating Session
s = requests.Session()
s.get('http://httpbin.org/cookies/set/sessioncookie/419735271')
# Getting Response
r = s.get('http://httpbin.org/cookies')
# Show Response
print(r.text)
Python3
# Import Libraries
import requests
# Error Handling
try:
# Creating Request
req = requests.get('https://www.geeksforgeeks.org/', timeout=0.000001)
except requests.exceptions.RequestException as e:
# Raising Error
raise SystemExit(e)
输出:
获取会话信息
session()方法返回会话对象,该对象提供某些参数来操作请求。它还可以为从会话对象发起的所有请求操作 cookie。如果向单个主机发出大量请求,则会调用关联的 TCP 连接。
蟒蛇3
# Import Libraries
import requests
# Creating Session
s = requests.Session()
s.get('http://httpbin.org/cookies/set/sessioncookie/419735271')
# Getting Response
r = s.get('http://httpbin.org/cookies')
# Show Response
print(r.text)
输出:
{
"cookies": {
"sessioncookie": "419735271"
}
}
错误处理
如果在处理对服务器的请求时出现某些错误,则程序会引发异常,该异常可以使用 timeout 属性进行处理,该属性定义了程序等待之前的时间值,然后引发超时错误。
蟒蛇3
# Import Libraries
import requests
# Error Handling
try:
# Creating Request
req = requests.get('https://www.geeksforgeeks.org/', timeout=0.000001)
except requests.exceptions.RequestException as e:
# Raising Error
raise SystemExit(e)
输出:
HTTPSConnectionPool(host=’www.geeksforgeeks.org’, port=443): Max retries exceeded with url: / (Caused by ConnectTimeoutError(