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
python的http包的更多相关文章
- Python黑帽编程1.3 Python运行时与包管理工具
Python黑帽编程1.3 Python运行时与包管理工具 0.1 本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...
- python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法?
python中引入包的时候报错:import unittestimport smtplibimport timeimport osimport sysimp.reload(sys)sys.setdef ...
- Python之扩展包安装
读者朋友,在比较新的版本(Python 2 >=2.7.9 or Python 3 >=3.4)中,pip或者easy_install 扩展包命令已经默认安装(可查看 你的安装目录\p ...
- python的egg包的安装和制作]
Defining Python Source Code Encodings Python egg 的安装 egg文件制作与安装 2011-06-10 14:22:50| 分类: python | ...
- [resource]23个python的机器学习包
23个python的机器学习包,从常见的scikit-learn, pylearn2,经典的matlab替代orange, 到最新最酷的Theano(深度学习)和torch 7 (well,其实lua ...
- Python学习 之 包和模块
1.rpm -ql python #查看python在计算机中安装了哪些文件 2.模块是一个可以导入的Python脚本文件 包是一堆按目录组织的模块和子包,目录下的__init__.py文件存放了包的 ...
- 使用pip install 或者easy_install安装Python的各种包出现cc failed with exit status 1
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- 繁简转换OpenCC,autogb 和 autob5,iconv,python的jianfan包
OpenCC OpenCC 是跨平台.多语言的开放中文转换库,除了基本的简繁转换功能外,用户还可以选择对不同用词习惯和异体字的处理方式. OpenCC 还提供方便的网页转换界面. OpenOffice ...
- python——模块和包 需要注意的地方
一 模块 1.import import module: 将执行文件(module)的目录路径插入到sys.path的第一个位置 执行时: 1.创建新的名称空间 2.执行被调用的模块 第二次调用,不会 ...
- Python/模块与包之模块
Python/模块与包之模块 1.什么是模块? 模块就是py文件 2.为什么要用模块? 如果在解释器上进行编码,把解释器关闭之前写的文件就不存在了,如果使用模块的话就能永久保存在磁盘中. 3.如何使用 ...
随机推荐
- [Linux] 获取出日志中的邮箱shell
需求是把所有的日志中邮箱获取出来,根据指定关键字过滤,邮箱的格式是\txxx@xxx\t的格式,日志的存放是按照日期作为目录 #!/bin/bash logBasePath="/data1/ ...
- Re-DD-androideasy
题目地址 https://dn.jarvisoj.com/challengefiles/DDCTF-Easy.apk.64812266499cc050ac23e190e53b87f7 用JEB打开 返 ...
- 2019-2020-1 20199305《Linux内核原理与分析》第六周作业
系统调用的三层机制(下) (一)给MenuOS增加命令 (1)打开虚拟机,首先用rm -rf menu指令删除当前的menu目录,然后用git clone重新克隆一个新版本的menu,进入menu,运 ...
- 阿里云服务器 ECS Jenkins 安装教程
参考:https://blog.csdn.net/liqing0013/article/details/83930419
- IDEA2019 Win10 Tomcat Server控制台中文乱码的快速解决办法
原理 Windows10的控制台使用GBK编码,而Tomcat使用UTF-8编码,导致乱码 解决办法 修改$tomcat/conf/logging.properties文件 # 注释这行 java.u ...
- 反射(hasattr和getattr和setattr和delattr)
目录 一.反射在类中的使用 1.1 应用 二.反射在模块中的使用 2.1 前言 2.2 反射机制 2.2.1 getattr() 2.2.2 hasattr(object, name) 2.2.3 s ...
- Win32 程序开发入门:一个最简单的Win32程序
一.什么是 Win32 Win32 是指 Microsoft Windows 操作系统的 32 位环境,与 Win64 都为 Windows 常见环境. 这里再介绍下 Win32 Applicatio ...
- Mybatis关联查询之一
MyBatis的关联查询之一对多,多对一 在关系型数据库中,我们经常要处理一对多,多对一和多对多的关系. 一对多,多对一 一.entity 实体类 public class SmbmsRole { p ...
- spring cloud 2.x版本 Gateway路由网关教程
前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...
- Springboot 打包自带启动脚本
一直以来,我都是 gradlew build java -jar xxx.jar 来启动springboot项目的.今天突然发现,springboot自动封装了一个bootJar的任务脚本. demo ...