Python Network Programming 简明教程

Python - HTTP Client

在 http 协议中,从客户端发出的请求到达服务器并提取一些数据和元数据,假设它是一个有效的请求。我们可以使用 Python requests 模块中的各种函数分析此来自服务器的响应。这里以下 python 程序在客户端运行,并显示服务器发送的响应结果。

Get Initial Response

在以下程序中,来自 requests 模块的 get 方法从服务器提取数据并以纯文本格式打印。

import requests
r = requests.get('https://httpbin.org/')
print(r.text)[:200]

当我们运行以上程序时,我们得到以下输出:

<!DOCTYPE html >
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>httpbin.org</title>
  <link
href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Source+Code+Pro:300,600|Titillium+

Get Session Object Response

会话对象允许你在请求之间保留某些参数。它还在会话实例发起的请求之间保留 cookie。如果你向同一主机发出多个请求,将重新使用基础 TCP 连接。

import requests
s = requests.Session()

s.get('http://httpbin.org/cookies/set/sessioncookie/31251425')
r = s.get('http://httpbin.org/cookies')

print(r.text)

当我们运行以上程序时,我们得到以下输出:

{"cookies":{"sessioncookie":"31251425"}}

Handling Error

如果由于服务器在处理请求时出现问题而引发一些错误,则 Python 程序可以使用 timeout 参数(如下所示)正常处理引发的异常。此程序将等待超时错误的定义值,然后引发超时错误。

requests.get('http://github.com', timeout=10.001)