java中的接口是类吗
369
2022-08-31
python httplib模块HTTP请求详解(python能做什么)
文章目录
1. 介绍2. 安装3. class HTTPConnection()
3.1.1 语法3.1.2 用法3.1.3 参数3.1.4 返回3.1.5 详解
3.2 HTTPSConnection()
3.2.1 语法3.2.2 用法3.2.3 参数3.2.4 返回3.2.5 详解3.2.6 实例代码
3.3 HTTPConnection.request()
3.3.1 语法3.3.2 用法3.3.3 参数3.3.4 返回3.3.5 代码
3.4 HTTPConnection.getresponse()
3.4.1 说明3.4.2 返回3.4.3 代码
3.5 HTTPConnection.connect()3.6 HTTPConnection.close()3.7 HTTPConnection.set_debuglevel( level )
4. class HTTPResponse.read([amt])4.2 HTTPResponse.getheaders()4.3 HTTPResponse.msg()4.4 HTTPResponse.msg4.5 HTTPResponse.status4.6 HTTPResponse.reason
5. class 异常处理7. 实战
1. 介绍
安装
[root@localhost ~]# pip install Downloading (220kB): 220kB downloaded Running setup.py (path:/tmp/pip_build_root/egg_info for package Installing collected packages: Running setup.py install for Successfully installed up...
3. class HTTPConnection()
3.1.1 语法
class strict[, timeout[, source_address]]]])
3.1.2 用法
该类用于创建一个参数
host: 请求的服务器host,不能带服务器web服务端口strict: 是否严格检查请求的状态行,就是单次请求的超时时间,没有时默认使用返回
HTTPConnection类会实例并返回一个HTTPConnection对象
3.1.5 详解
HttpConnection的实例表示与HTTP服务器的事务。实例化时需要传递主机和可选的端口号。如果没有端口号,试图以host:port格式从主机字符串提取,如果提取失败则使用默认的HTTP端口(80)。 参数strict默认为false,表示在无法解析状态行时(status line)不能被HTTP/1.0或1.1解析时不抛出BadStatusLine异常;可选参数timeout表示即阻塞在多少秒后超时,如果没有给出默认使用全局超时设置。可选参数source_address表示HTTP的源地址(host, port)。
实例代代码:
import =connconn = connconn =connconn =connconn =connconn =conn
输出:
3.2 HTTPSConnection()
3.2.1 语法
用法
该类用于创建一个参数
key_file:一个包含PEM格式的私钥文件cert_file:一个包含PEM格式的认证文件other:其它同返回
同样返回一个HTTPSConnection对象
注意: 要创建详解
HttpConnection的子类,使用SSL与安全服务器通信。默认端口为443。key_file是包含PEM格式私钥的文件名称。 cert_file中是PEM格式的证书链文件。
3.2.6 实例代码
import = HTTPConnection.request()
3.3.1 语法
HTTPConnection.request( method , url [ , body [ , headers ]] )
3.3.2 用法
调用request方法会向服务器发送一次请求
3.3.3 参数
method: 请求的方式,如’GET’,‘POST’,‘HEAD’,‘PUT’,'DELETE’等url: 请求的网页路径。如:’/index.html’body: 请求是否带数据,该参数是一个字典headers: 请求是否带头信息,该参数是一个字典,不过键的名字是指定的返回
无返回,其实就是相对于向服务其发送数据,但是没有最后回车
3.3.5 代码
import =conn.request('get','/','',{'user-agent':'test'})
3.4 HTTPConnection.getresponse()
3.4.1 说明
获取一个返回
HTTPResponse对象(下面会用到)
3.4.3 代码
[root@localhost cat = conn.getresponse()print res[root@localhost python instance at 0x7f459bd107e8>
3.5 HTTPConnection.connect()
说明:对象创建之后连接到指定的服务器
3.6 HTTPConnection.close()
说明:关闭与服务器的连接 代码:
#!/usr/bin/pythonimport = conn.getresponse()print resconn.close()
3.7 HTTPConnection.set_debuglevel( level )
说明: 设置高度的级别。参数level 的默认值为0 ,表示不输出任何调试信息
#!/usr/bin/pythonimport = conn.set_debuglevel(0)print debugconn.close()
4. class 它有如下方法和属性:
4.1 HTTPResponse.read([amt])
说明: 获得原型:body = res.read([amt])amt: 读取指定长度的字符,默认为空,即读取所有内容 返回:网页内容字符串 获取响应的消息体。如果请求的是一个普通的网页,那么该方法返回的是页面的html。可选参数amt表示从响应流中读取指定字节的数据。
[root@localhost cat = conn.getresponse()print res.read()[root@localhost python html>
·········获取执指定的响应头。Name表示头域(headerfield)名,可选参数default在头域名不存在的情况下作为默认值返回。
4.2 HTTPResponse.getheaders()
说明; 获得所有的响应头内容,是一个元组列表[(name,value),(name2,value2)] 附代码:
[root@localhost cat = conn.getresponse()print res.getheaders()[root@localhost python '14615'), ('traceid', '1585662997043926733812101108609502278751'), ('set-cookie', 'BAIDUID=C1DA400A878388A271CC54BCDE99F6F5:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com, BIDUPSID=C1DA400A878388A271CC54BCDE99F6F5; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com, PSTM=1585662997; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com, BAIDUID=C1DA400A878388A2E4674A2D94B0BB5F:FG=1; max-age=31536000; expires=Wed, 31-Mar-21 13:56:37 GMT; domain=.baidu.com; path=/; version=1; comment=bd'), ('accept-ranges', 'bytes'), ('vary', 'Accept-Encoding'), ('server', 'BWS/1.1'), ('connection', 'keep-alive'), ('x-ua-compatible', 'IE=Edge,chrome=1'), ('pragma', 'no-cache'), ('cache-control', 'no-cache'), ('date', 'Tue, 31 Mar 2020 13:56:37 GMT'), ('p3p', 'CP=" OTI DSP COR IVA OUR IND COM ", CP=" OTI DSP COR IVA OUR IND COM "'), ('content-type', 'text/html')]
4.3 HTTPResponse.msg()
说明:获取所有的响应头信息。包含响应头的mimetools.Message实例
[root@localhost cat = conn.getresponse()print res.msg
[root@localhost python bytesCache-Control: no-cacheConnection: keep-aliveContent-Length: 14615Content-Type: text/htmlDate: Tue, 31 Mar 2020 13:59:33 GMTP3p: CP=" OTI DSP COR IVA OUR IND COM "P3p: CP=" OTI DSP COR IVA OUR IND COM "Pragma: no-cacheServer: BWS/1.1Set-Cookie: BAIDUID=03C55CB4B2F53EEB89BC70720ABA5DB8:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.comSet-Cookie: BIDUPSID=03C55CB4B2F53EEB89BC70720ABA5DB8; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.comSet-Cookie: PSTM=1585663173; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.comSet-Cookie: BAIDUID=03C55CB4B2F53EEB1D3F571BA752A14E:FG=1; max-age=31536000; expires=Wed, 31-Mar-21 13:59:33 GMT; domain=.baidu.com; path=/; version=1; comment=bdTraceid: 1585663173045617562611241334006733438813Vary: Accept-EncodingX-Ua-Compatible: IE=Edge,chrome=1
4.4 HTTPResponse.msg
说明:获取服务器所使用的cat = conn.getresponse()print res.version
[root@localhost python HTTPResponse.status
说明: 获取响应的状态码。如:200表示请求成功
[root@localhost cat = conn.getresponse()print res.status
[root@localhost python HTTPResponse.reason
说明:返回服务器处理请求的结果说明。一般为”OK”
[root@localhost cat = conn.getresponse()print res.reason
[root@localhost python class 异常处理
exception 实战
[root@localhost cat urllibconn = Nonetry: params = urllib.urlencode({'name': 'qiye', 'age': 22}) headers = {"Content-type": "application/x- , "Accept": "text/plain"} conn = 80, timeout=3) conn.request("POST", "/login", params, headers) response = conn.getresponse() print response.getheaders() # 获取头信息 print response.status print response.read()except Exception, e: print efinally: if conn: conn.close()
[root@localhost python '0.000'), ('content-length', '278'), ('via', 'vcache3.cn2204[,0]'), ('x-cdn-provider', 'alibaba'), ('eagleid', '3ad79e1715856640307233330e'), ('server', 'Tengine'), ('connection', 'keep-alive'), ('location', '('date', 'Tue, 31 Mar 2020 14:13:50 GMT'), ('content-type', 'text/html'), ('timing-allow-origin', '*')]301DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
The requested resource has been assigned a new permanent URI.p>
参考连接:https://cloud.tencent.com/developer/article/1504178
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~