Python__模块(网络-HTTP底层)__http

简介

用于处理超文本传输协议的模块


文档查询

https://docs.python.org/zh-cn/3/library/http.html


参数列表

模块分类

http.client

是一个底层的HTTP协议客户端

http.server

包含基于 socketserver的基本HTTP服务器的类

http.cookies

包含一些有用来实现通过 cookies 进行状态管理的工具

http.cookiejar

提供了 cookies 的持久化

http.client

这个模块定义了实现 HTTP 和 HTTPS 协议客户端的类。 

常量

http.client.HTTP_PORT

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

http.client.HTTPS_PORT

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

http.client.responses

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


HTTPConnection

简介

网页连接或请求

模块导入

from http.client import HTTPConnection

语法

HTTPConnection(hostport=None, [timeout, ]source_address=Noneblocksize=8192)

例子

http.client.HTTPConnection('www.python.org')
http.client.HTTPConnection('www.python.org:80')
http.client.HTTPConnection('www.python.org', 80)
http.client.HTTPConnection('www.python.org', 80, timeout=10)
函数
request

请求方式

【语法】

request(method, url, body=None, headers={}, *, encode_chunked=False)

getresponse

服务器返回的内容

set_debuglevel

设置调试级别,默认调试级别是 0

意味着没有调试输出

【语法】

set_tunnel(host, port=None, headers=None)

set_tunnel

设置 HTTP 隧道链接的主机和端口,

这允许连接使用代理服务器。

【语法】

set_tunnel(host, port=None, headers=None)

connect

连接指定的服务器,

默认情况下,如果客户端没有连接,

会在 request 请求时自动调用该方法

close

关闭连接 (关闭连接后再次请求)

putrequest

应为连接服务器之后首先调用的函数。

将向服务器发送一行数据,

包含 method 字符串、url 字符串和 HTTP 版本(HTTP/1.1)。若要禁止自动发送 Host: 或 Accept-Encoding: 头部信息(比如需要接受其他编码格式的内容),请将 skip_host 或 skip_accept_encoding 设为非 False 值。

【语法】

putrequest(request, selector, skip_host=False, skip_accept_encoding=False)

putheader

发送http头部

【语法】

putheader(header, argument[, …])

endheaders

向服务器发送一个空行,表示头部文件结束。

可选的 message_body 参数可用于传入一个与请求相关的消息体。

【语法】

endheaders(message_body=None*encode_chunked=False)

send

发送数据到服务器,

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

【语法】

send(data)

属性
blocksize用于发送文件类消息体的缓冲区大小

HTTPResponse对象

用法

response=HTTPSConnection(url).getresponse()

函数
read返回响应体(html>body)内容。
readinto返回读取的字节数。
getheader

返回标头 name 的值,

如果没有匹配 name 的标头则返回 default

【语法】

getheader(namedefault=None)

getheaders返回 (header, value) 元组构成的列表。
fileno返回底层套接字的 fileno
属性
msg包含响应头的 http.client.HTTPMessage 实例。
versionHTTP 协议版本
url已读取资源的 URL,通常用于确定是否进行了重定向。
headers响应的头部信息
status返回状态码
reason返回的原因短语
debuglevel一个调试钩子。如果debuglevel大于零,状态信息将在读取和解析响应数据时打印输出到 stdout。
closed

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


http.server

这个模块定义了用于实现 HTTP 服务器的类。


http.cookies

一种 HTTP 状态的管理机制。它既支持简单的纯字符串形式的 cookie,也为任何可序列化数据类型的 cookie 提供抽象。


http.cookiejar

定义了用于自动处理 HTTP cookie 的类。这对访问需要小段数据 —— cookies 的网站很有用,这些数据由 Web 服务器的 HTTP 响应在客户端计算机上设置,然后在以后的 HTTP 请求中返回给服务器。


参考代码

综合例子

from http.client import HTTPSConnection
''' 连接网址'''
site = HTTPSConnection('www.xxx.com')
site.request('GET','/')   # 请求方式,API接口
site = site.getresponse() # 响应类
''' 状态码 '''
print(site.status)   
''' 头部信息 '''     
print(site.getheaders())  
''' 解码 '''
print(site.read().decode('utf-8')) 
''' 关闭连接 '''
site.close() 

POST发送

import http.client
import urllib
# 使用 POST 请求,提交的数据放在 body 部分
params = urllib.parse.urlencode({'@number':12524,'@type':'issue','@action':'show'})
print('==>',params)
# post 请求数据,要带上 Content-type 字段,以告知消息主体以何种方式编码 
headers = {'Content-type':'application/x-www-form-urlencoded','Accept':'text/plain'}
conn = http.client.HTTPConnection('bugs.python.org')
conn.request('POST','/',params,headers)
response = conn.getresponse()
# 访问被重定向
print(response.status,response.reason)
print(response.read().decode('utf-8'))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vip飞梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值