python的http包
http包简介
http包提供了 HTTP协议的一些功能,主要模块有:
http.client --- 底层的 HTTP 协议的一些功能,可以为 urllib.request 模块所用
http.server --- 提供了基于 socketserver模块的基本 HTTP服务器类
http.cookies --- cookies 的管理工具
http.client :
HttpClient不是一个浏览器。它是一个客户端的HTTP通信实现库。HttpClient的目标是发送和接收HTTP报文。
两个主要类(用于客户端):
HTTPConnection :基于HTTP协议的客户端,指定 URL(网址) 后,可以 发送请求报文 和 接收响应报文
HTTPRespone :基于 HTTP 协议的服务端回应。一旦用 HTTPConnection 成功连接,可以调用相关方法返回该实例(HTTPRequest实例)。
(1)HTTPConnection 的方法:
构造方法: HTTPConnection( host,port,[timeout] ) 返回一个HTTPConnection 实例
host:表示主机域名或 ip 地址
port:表示端口
timeout:阻塞操作将会在给定时间后超时。可选项
发送请求报文方法:HTTPConnection.request( method,url,body =None,headers = {} )
method:发送的操作,一般为 GET 或者 POST
url :进行操作的 url
body :所发送的数据
headers:发送的 HTTP头部,是一个字典类型
获取响应报文方法:HTTPConnection.getrespone( )
关闭与服务器的连接: HTTPConne.close()
发送一个头部:HTTPConnection.putheader( header,args[ ] ) #头部以一个字典方式发送
发送一个空白行到服务器,标志头部Header的结束:HTTPConnection.endheaders( )
发送数据到服务器:HTTPConnection.send( data ) ,应该在endheaders()之后 和 getrespone()之前调用。
(2)HTTPRespone:
HTTPRespone对象:一旦用 HTTPConnection 成功连接,可以调用HTTPConnection.getrespone()返回该实例(HTTPRequest实例)。
HTTPRespone.getheader(name) :返回头部中的 name 字段对应的值
HTTPRespone.getheaders( ) :以元组的方式返回整个头部的信息
HTTPRespone.read() :返回响应报文中的body部分,也即正文部分
HTTPRespone.status #返回状态码
HTTPRespone.version #返回 HTTP协议版本
http 包应用实例 。
from http.client import HTTPConnection con = HTTPConnection('www.baidu.com',80) con.request('GET','/') #发送请求报文 res = con.getresponse() #获取响应报文对象 print(res.status) #200 (表示状态码) print(res.reason) #OK (表示状态码对应的意义) print(res.read().decode('utf-8')) #打印www.baidu.com的html