• 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
  • 相关阅读:
    置换加密算法
    堆和优先队列的应用
    定时发送邮件小程序
    Hibernate的缓存
    Spring中使用JDBC
    Spring AOP(创建切面)
    处理不可中断阻塞
    SQL语句实例说明
    spring_声明式事务
    Flex_includeIn属性的作用
  • 原文地址:https://www.cnblogs.com/liangshian/p/11555612.html
Copyright © 2020-2023  润新知