python使用httplib2访问REST服务的例子

Posted 有目标并为之不懈努力终将收到回报!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python使用httplib2访问REST服务的例子相关的知识,希望对你有一定的参考价值。

首先你需要安装httplib2,这个可以在github上找到;

然后你需要获得一个http连接的对象:

con = httplib2.Http()
 
然后你需要发起连接:
(6)resp, (5)content = con.request( (1)BAIDU_COM_API_COMMENTS, (2)method="POST", body=(3)body,headers=(4)header_data)
参数1是访问的URL:比如sina.com
参数2是method:get,post,delete,add,set中的一个;
参数3是参数,最麻烦的一个,它需要使用urllib进行encode,如下所示:
body_data = {};
body_data[‘token‘] = ‘redoocnekot‘
body_data[‘urllist‘] = svn_url
body_data[‘starttime‘] = start_time
body_data[‘endtime‘] = end_time
body = urllib.urlencode(body_data)

参数4,header,奇怪的是它又不需要encode:

header_data = {‘Content-Type‘: ‘application/x-www-form-urlencoded‘}

 

返回值5:内容

[{"author": "wangmeng09", "text": "\u4e0d\u8981\u4f7f\u7528\u9ed8\u8ba4\u4fee\u9970\u7b26", "lineno": 22, "date": "2015-03-13 11:05:00"……

返回值6:应答对象

{‘status‘: ‘200‘, ‘content-language‘: ‘zh-cn‘, ‘transfer-encoding‘: ‘chunked‘, ‘server-id‘: ‘rd-139‘, ‘vary‘: ‘Accept-Language, Cookie‘, ‘server‘: ‘openresty/1.7.4.1‘, ‘connection‘: ‘keep-alive‘, ‘date‘: ‘Wed, 30 Mar 2016 15:08:41 GMT‘, ‘access-control-allow-origin‘: ‘*‘, ‘content-type‘: ‘application/json‘}

-----
注意到返回的内容里面unicode的显示不正确,需要用string转一下:
content_str = content.decode(‘raw_unicode_escape‘)
 
str=‘\u7f13\u5b58\u63a5‘
print str.decode(‘raw_unicode_escape‘)
对应的汉字:缓存接
 
decode表示解码,把字符从输入中解出来。那么输入是什么格式呢?按照‘raw_unicode_escape‘来理解。‘raw_unicode_escape‘表示什么呢?表示把\u开头的字符串是个utf-8的编码。

以上是关于python使用httplib2访问REST服务的例子的主要内容,如果未能解决你的问题,请参考以下文章

在 Python Appengine 上使用 Httplib2

httplib2请求时间python

python中urllib, urllib2,urllib3, httplib,httplib2, request的区别

httplib2 安装权限被拒绝

“ImportError:没有名为 httplib2 的模块”即使在安装后

使用 Python 访问 Office365 Sharepoint REST 端点(适用于 Python 的 Office365 Sharepoint REST 客户端)