Python中的Client()类详解
发布时间:2024-01-06 08:03:25
在Python中,使用Client()类可以创建一个可以与服务器进行通信的客户端。
语法:
class http.client.HTTPConnection(host, port=None, [timeout, ] [source_address, ] [blocksize])
参数说明:
- host:服务器主机名或IP地址。
- port:服务器端口号,默认为80。
- timeout:连接超时时间,默认为socket模块的全局超时时间。
- source_address:指定本地绑定的IP地址。
- blocksize:指定发送或接收的块大小,默认为-1,即采用系统默认缓冲区大小。
Client()类提供了以下常用方法:
- request(method, url, body=None, headers={}):发送HTTP请求。
- getresponse():获取服务器响应。
- set_debuglevel(level):设置调试级别。
下面是一个使用Client()类的例子,实现了向指定URL发送GET请求并输出服务器响应的HTTP状态码和响应内容:
import http.client
# 1. 创建客户端连接
conn = http.client.HTTPConnection("www.example.com")
try:
# 2. 发送GET请求
conn.request("GET", "/")
# 3. 获取服务器响应
response = conn.getresponse()
# 4. 输出HTTP状态码和响应内容
print("HTTP status code:", response.status)
print("Response content:")
print(response.read().decode())
except Exception as e:
print("Error:", str(e))
finally:
# 5. 关闭连接
conn.close()
运行上述代码,将输出服务器返回的HTTP状态码和响应内容。
注意:
- 使用Client()类发送POST请求时,需要在请求头中指定"Content-Type"为"application/x-www-form-urlencoded"或"multipart/form-data",并将请求体以字节流的形式传入request()方法中的body参数中。
- 获取到的响应内容是字节流形式,可以使用decode()方法将其转换为字符串形式。另外,也可以通过readinto()方法直接将响应内容读取至指定的缓冲区中。
