前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python: httplib2模块

Python: httplib2模块

作者头像
py3study
发布2020-01-09 16:45:44
1.1K0
发布2020-01-09 16:45:44
举报
文章被收录于专栏:python3python3

[+]

httplib2功能介绍:http://code.google.com/p/httplib2/

httplib2实例页面:http://code.google.com/p/httplib2/w/list

httplib2问题提交:http://code.google.com/p/httplib2/issues/list

好吧,我觉得官方的样例还是比较全的,这里就直接贴一下吧。

Simple Retrieval

代码语言:javascript
复制
[python] view plaincopy
import httplib2  
h = httplib2.Http(".cache")  
resp, content = h.request("http://example.org/", "GET")  

Authentication

代码语言:javascript
复制
[python] 查看普通副本
导入 httplib2  
h = httplib2.Http(“ .cache”)  
h.add_credentials('name',  'password')  
RESP,含量= h.request(“https://example.org/chap/2” ,    ## SSL +基地认证  
    “ PUT” ,body = “这是文字” ,   
    headers = { 'content-type' :'text / plain' })  

Cache-Control

代码语言:javascript
复制
[python] 查看普通副本
导入 httplib2  
h = httplib2.Http(“ .cache”)  
RESP,含量= h.request(“http://bitworking.org/” )#  请求被缓存,下次还会用这个缓存而不去发送新的请求,缓存生效时间有网络配置决定  
 ...  
resp,content = h.request(“ http://bitworking.org/” ,   
    headers = { 'cache-control' :'no-cache' })    ##设置不用缓存,当次将不用缓存,而是直接发一个新的请求 

Forms

代码语言:javascript
复制
[python] 查看普通副本
>>>  从  httplib2  导入  Http  
>>>  从  urllib  导入  urlencode  
>>> h = Http()  
>>> data = dict(name = “ Joe”,comment = “ A测试注释”)  
>>> resp,内容= h.request(“ http://bitworking.org/news/223/Meet-Ares”,  “ POST”,urlencode(data))  
>>>响应  
{ 'status':  '200',  'transfer-encoding':  'chunked',  'vary':  'Accept-Encoding,User-Agent',  
 'server':  'Apache',  'connection':  'close',  'date':  'Tue,31 Jul 2007 15:29:52 GMT',   
 'content-type':  'text / html' }  

Cookies

代码语言:javascript
复制
[python] 查看普通副本
#!/ usr / bin / env python  
  
导入 urllib  
导入 httplib2  
  
http = httplib2.Http()  
  
url =  'http://www.example.com/login'     
正文= { 'USERNAME' :  'foo' ,  'PASSWORD' :  'bar' }  
标头= { 'Content-type' :  'application / x-www-form-urlencoded' }  
响应,内容= http.request(url,  'POST' ,headers = headers,body = urllib.urlencode(body))  
  
headers = { 'Cookie' :response [ 'set-cookie' ]}    ###将获得Cookie设置到请求头中,以备下次请求使用  
  
url =  'http://www.example.com/home'     
响应,内容= http.request(url,  'GET' ,headers = headers)   ##本次请求就不用带用户名,密码了  

Proxies

代码语言:javascript
复制
[python] 查看普通副本
导入 httplib2  
进口  袜子       ##需要第三方模块  
  
httplib2.debuglevel = 4  
h = httplib2.Http(proxy_info = httplib2.ProxyInfo(socks.PROXY_TYPE_HTTP,  'localhost' ,  8000 ))  
r,c = h.request(“ http://bitworking.org/news/” )  

======================================================================================

下面是我自己对模块功能的尝试:

[python] view plaincopy

代码语言:javascript
复制
   Http对象的构造方法:  
   __init__(self, cache=None, timeout=None, proxy_info=None, ca_certs=None, disable_ssl_certificate_validation=False)  
       proxy_info 的值是一个 ProxyInfo instance.  
|        
|      'cache':  
        存放cache的位置,要么为字符串,要么为支持文件缓存接口的对象  
|        
|      timeout:  
        超时时间,默认时会取python对socket链接超时的值  
|        
|      ca_certs:  
        一个用于ssl服务器认证用的包涵了主CA认证的文件路径,默认会使用httplib2绑定的证书  
|        
|      disable_ssl_certificate_validation:  
        确定是否进行ssl认证  
|    
|  add_certificate(self, key, cert, domain)  
|      添加一个ssl认证key和文件  
|    
|  add_credentials(self, name, password, domain='')  
|      添加一个用户名,密码信息  
|    
|  clear_credentials(self)  
|      删除掉所有的用户名,密码信息,貌似还是可以存多个用户名和密码  
 
 
   Http.request(self, uri, method='GET', body=None, headers=None, redirections=5, connection_type=None)  
   说明:  
   执行单次的http请求  
 
   uri:  
   一个以'http' 或 'https'开头的资源定位符字串,必须是一个绝对的地址  
 
   method:  
   支持所有的http请求方式。如: GET, POST, DELETE, etc..  
 
   body:  
   请求的附件数据,一个经过urllib.urlencode编码的字符串  
 
   headers:  
   请求头信息,一个字典对象  
 
   redirections:  
   最大的自动连续的重定向次数默认为5 
 
   返回:  
   (response, content)元组,response是一个httplib2.Response对象,content就是包含网页源码的字符串  
 
 
   httplib2.Response对象  
   其实就是一个包含所有头信息的字典,因为它本身就是集成自字典对象的  

另外,httplib2模块本身还有其它的对象或属性,可以通过print dir(httplib2)来查看

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Simple Retrieval
  • Authentication
  • Cache-Control
  • Forms
  • Cookies
  • Proxies
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档