位置: 编程技术 - 正文

深入理解Python3中的http.client模块(深入理解计算机系统)

编辑:rootadmin

推荐整理分享深入理解Python3中的http.client模块(深入理解计算机系统),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:深入理解python特性,深入理解python特性pdf,深入理解python特性,深入理解Python特性 达恩·巴德尔,深入理解python特性网盘,深入理解python异步编程,深入理解python特性,深入理解python异步编程,内容如对您有帮助,希望把文章链接给更多的朋友!

http 模块简介

Python3 中的 http 包中含有几个用来开发 HTTP 协议的模块。

http.client 是一个底层的 HTTP 协议客户端,被更高层的 urllib.request 模块所使用。 http.server 包含基于 socketserver 的基本 HTTP 服务器的类。 http.cookies 实现 cookie 状态管理 http.cookiejar 与 cookie 相关

http 模块还定义了一系列的 HTTP 状态码。

HTTPStatus 类是在 Python 3.5 版本中新增的。

具体的 HTTP 状态码和相应的说明可以在 Python 的官方文档上找到: 模块

http.client 模块定义了实现 http 和 https 协议客户端的类。

该模块通常不会直接使用,而是用封装好的 urllib.request 模块来使用他们处理 URL 。

常量

http 模块中的常量:

1、http.client.HTTP_PORT

http 协议默认的端口号,总是 端口

2、http.client.HTTPS_PORT

https 协议默认的端口号,总是 端口

3、http.client.responses

将 HTTP 1.1 状态码映射到 W3C 名字的字典。

例如:

基本类

HTTPConnection 类

HTTPConnection 实例表示与 HTTP 服务器的事务。

实例化 HTTPConnection 时应该传递一个主机和可选的端口号。如果没有传递端口,而主机字符串是以 host:port 的形式,则会提取出端口值,否则将使用默认的 8- 端口。

如果给定了可选参数 timeout ,阻塞操作将会在给定的时间后超时,若未给定,则使用默认的全局 timeout 设置。

可选参数 source_address 应该以 host 和 port 的元组形式 (host,port),用来作为 HTTP 连接的源地址。

示例代码如下:

source_address 是在 3.2 版本中添加的。

strict 参数在 3.4 版本中移除了。

HTTPSConnection 类

HTTPSConnection 是 HTTPConnection 的子类,使用 SSL 与安全服务器联系。

默认的端口是 端口。如果指定了 context ,必须是 ssl.SSLContext 类的实例来描述不同的 SSL 选项。

key_file 和 cert_file 已经被弃用了,取而代之的是 ssl.SSLContext.load_cert_chain() 。或者使用 ssl.create_default_context() 选择系统信任的 CA 证书。

check_hostname 参数也被弃用了,使用 context 的 ssl.SSLContext.check_hostname 属性。

HTTPResponse 类

一旦连接成功就会返回该实例,该类的对象不能由用户直接实例化。

HTTPMessage 类

HTTPMessage 实例持有从 HTTP response 返回的头部。

异常类

HTTPException 类

Exception 类的子类,也是 http 模块中其他异常类的基类。 其他异常类:

NotConnected InvalidURL UnknownProtocol UnknownTransferEncoding UnimplementedFileMode IncompletedRead ImproperConnectionState BadStatusLine LineTooLong CannotSendRequest CannotSendHeader ResponseNotReady RemoteDisconnected

类方法

HTTPConnection 对象方法

HTTPConnection 实例有如下的方法 :

1、HTTPConnection.request(method, url, body=None, headers={})

使用指定的 method 方法和 url 链接向服务器发送请求。

如果指定 了body 部分,那么 body 部分将在 header 部分发送完之后发送过去。body 部分可以是一个字符串、字节对象、文件对象或者是字节对象的迭代器。不同的 body 类型对应不同的要求。

header 参数应该是 HTTP 头部的映射,是一个字典类型。

深入理解Python3中的http.client模块(深入理解计算机系统)

如果 header 中不包含 Content-Length 项,那么会根据 body 的不同来自动添加上去。

2、HTTPConnection.getresponse()

必须在请求发送后才能调用得到服务器返回的内容,返回的是一个 HTTPResponse 实例。

3、HTTPConnection.set_debuglevel(level)

设置调试级别,默认调试级别是 0 ,意味着没有调试输出。

4、HTTPConnection.set_tunnel(host, port=None, headers=None)

设置 HTTP 隧道链接的主机和端口,这允许连接使用代理服务器。

5、HTTPConnection.connect()

连接指定的服务器。默认情况下,如果客户端没有连接,则会在 request 请求时自动调用该方法。

6、HTTPConnection.close()

关闭链接。

7、HTTPConnection.putrequest(request, selector, skip_host=False, skip_accept_encoding=False)

当和服务器的链接成功后,应当首先调用该方法。

发送到服务器的内容包括:request 字符串、selector 字符串和 HTTP 协议版本。

8、HTTPConnection.putheader(header, argument[, …])

发送 HTTP 头部到服务器。

发送到服务器的内容包括:header 头部、冒号、空格和参数列表里的第一个。

9、HTTPConnection.endheaders(message_body=None)

发送一个空白行到服务器,标识头部的结束。

、HTTPConnection.send(data)

发送数据到服务器。

应该在 endheaders() 方法之后和在 getresponse() 方法之前调用。

HTTPResponse 对象方法

HTTPResponse 实例包含了从服务器返回的 HTTP 回应。

它提供了访问请求头部和 body 部分的方法。

HTTPResponse 是一个可迭代的对象而且可以使用 with 语句来声明。

HTTPResponse 实例有如下的方法 :

1、HTTPResponse.read([amt])

读取和返回 response 的 body 部分。

2、HTTPResponse.readinto(b)

读取指定的字节长度 len(b),并返回到缓冲字节 b 。

函数返回读取的字节数

3、HTTPResponse.getheader(name,default=None)

返回指定名称 name 的 HTTP 头部值,如果没有相应匹配的 name 值,则返回默认的 None。如果有多个相匹配的,则返回所有的值,以逗号分隔。

4、HTTPResponse.getheaders()

以元组的形式返回所有的头部信息 (header,value)。

5、HTTPResponse.fileno()

6、HTTPResponse.msg

7、HTTPResponse.version。

HTTP 协议版本

8、HTTPResponse.status

HTTP 状态码

9、HTTPResponse.reason

、HTTPResponse.debuglevel

、HTTPResponse.closed

如果为 True ,说明连接已关闭。

示例

总结

标签: 深入理解计算机系统

本文链接地址:https://www.jiuchutong.com/biancheng/377159.html 转载请保留说明!

上一篇:Python 中迭代器与生成器实例详解(python中迭代器的作用)

下一篇:django开发之settings.py中变量的全局引用详解(django settings.py)

  • 带息负债融资成本率意义
  • 补缴的社保可以报销吗
  • 个人独资企业税种有哪些
  • 有两处收入的怎么报个税汇算清缴
  • 财务报表和信息的区别
  • 个税系统设置在哪里
  • 小规模纳税人能用专票抵税吗
  • 缴注册印花税怎么做账
  • 应收暂估账务处理
  • 建筑业工人工资保障
  • 工业企业库存商品的初始入账成本
  • 固定资产的折旧方法一经选定,不得随意变更
  • 外购货物用于捐赠的会计分录
  • 已经确认收入的售出商品发生销售退回时
  • 递延所得税如何计算
  • 一般存款账户可以转账给个人吗
  • 商业承兑背书后退回怎么办
  • 固定资产减值准备增加记哪方
  • 个人账户付款可以开公司发票吗
  • 新版增值税开票软件怎么下载
  • 印花税要报吗
  • 设备维保费税率怎么算
  • 公司车辆怎么处理
  • 维修材料属于什么会计科目
  • 农产品进项税抵扣计算例题
  • 一般纳税人房产税是按季还是按月申报
  • 季度申报的小规模纳税人怎么查看销售额达到500万
  • 水费能不能开专票
  • 款已付发票未到怎么做结转成本
  • 用于研发的设备如何折旧
  • 免税企业进项怎么处理
  • 跨年的物业费如何记账
  • 银行贷款核销后还产生利息吗
  • wordpress常用api
  • 运行项目报错Couldn't import Django
  • 注销企业基本户需要先注销一般户吗
  • lsass.exe在哪个文件夹
  • 贷款支付的本息如何记账
  • javascript postmessage
  • php取二维数组的一组内容
  • 文化事业建设费减免政策
  • 论文 导论
  • trainer 平替
  • 跨境电商企业要进入某个国家的市场 必须先做的工作是
  • 房地产销售未完工产品转完工产品确认的销售收入
  • 提前开具发票怎么做账
  • 预计负债初始计量的最佳估计数的确定是会计估计变更吗
  • 写出php的常用四种基本变量类型
  • php上传大视频
  • 兼职属于劳务关系吗
  • 食堂账目怎么做
  • 会计六大类会计科目
  • 税务登记是需要原件还是复印件
  • 小微企业财政政策
  • 单位销售收入不包括哪些
  • SQL server 2008中的数据库能否只包含数据文件
  • 原材料的帐务处理
  • 怎么处理部分股票流出
  • 个人所得税要计入管理费用吗
  • 小企业营业外支出坏账损失
  • 公司垫付员工社保分录
  • 全额工资和实发工资
  • 员工出差的餐费可以抵扣吗
  • 应付职工薪酬如何进行会计处理
  • 中介费可以要求退吗
  • 实收资本的主要用途
  • sql server Bulk Insert命令详细
  • dwrg_repair.exe什么意思
  • win7声卡怎么升级
  • xp系统如何设置
  • win10系统下如何安装谷歌浏览器插件?win10系统下谷歌浏览器插件的安装方法图文教程
  • 怎么调用windows api
  • 怎么查看opengl版本
  • Linux中mysqldump命令实例详解
  • windows常用命令操作
  • 深入理解python特性 pdf
  • python字符类型有哪些
  • 国家税务12366电子税务局重庆
  • 下抓两级抓深一层的工作机制的要求包括什么
  • 中国十大经济农村
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设