书接上文,本节主要涉及urllib.request.urlopen()返回的http.client.HttpResponse的的属性和方法通俗讲解
方法讲解
- readinto()—已经被放弃的方法
这个方法相信很多人在很多书上都有看过,然而基本上就是跟大家提及下就没有说用法了,百度了也都找不到,但作为初学者的我们还是需要时刻保持着好奇心,为什么这个方法会被放弃?本着研究的态度我仔细研究了下,
这个方法需要一个bytes-like的对象,
一脸懵逼的我调用了help函数看看
翻一下就是:读出二进制对象(bytes-like object),转换成字节数组并返回二进制对象的大小
,什么是二进制对象?怎么转换成二进制对象呢?比如
图中的b就是二进制对象,‘中文’刚好是6字节的大小
最后这个方法到底用来干嘛的?
- getheaders()
这个东西物如其名,就是用来“取头”的,而且是把头全部都拿了,至于这个头需要大家注意的是我们都知道头有两个,一个是请求头,一个是响应头,拿人人头你觉得会是自己的吗?(标准答案:响应头)
- getheader(name)
指明道姓的拿响应头的某个部分!
- fileno()
返回句柄(windows就是这个叫法,其他系统又叫文件描述符)。这哥们简单说就是程序在内存的索引(不懂的同学可能还得脑补下关于内存方面的知识,我之前的文章里面有关于这方面的介绍),
一定是非负整数(≥0的整数)。
属性讲解
- msg
返回响应状态码的描述,比如200表示成功,它的描述就是ok
- version
返回http的版本,跟程序的版本一样这个很好理解,比如10就是HTTP/1.0,,11就是HTTP/1.1.
- status
返回响应的状态码,比如上面的200,找不到网页的404
- reason
这个跟msg有点像,只不过它返回的是原因
- debuglevel
程序的调试部件,debuglevel如果大于0的话就会把信息打印成输出文件,通常情况下你没有设置默认是0,那具体是什么意思呢?比如说这个
跟我们直接打开response不同的是,这里多了一个设置sslcontext的内容,即使没有print语句也会有下面的输出
也就是说,当debuglevel设置大于0时,会把http请求和响应的过程打印出来
- closed
这个好理解,就是把某个东西关闭。那具体时什么呢?就是http的信息流,如果要求一直连接,信息流就不会断这时候就会返回False,如果关的上就会返回True