码迷,mamicode.com
首页 > 编程语言 > 详细

11.Python-第三方库requests详解(三)

时间:2017-09-25 14:48:12      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:其他   txt   hidden   strong   span   get   .com   修改   size   

Response对象

使用requests方法后,会返回一个response对象,其存储了服务器响应的内容,如上实例中已经提到的 r.text、r.status_code……
获取文本方式的响应体实例:当你访问 r.text 之时,会使用其响应的文本编码进行解码,并且你可以修改其编码让 r.text 使用自定义的编码进行解码。

r = requests.get(http://www.itwhy.org)
print(r.text, \n{}\n.format(**79), r.encoding)
r.encoding = GBK
print(r.text, \n{}\n.format(**79), r.encoding)

其他响应

r.status_code #响应状态码
r.raw #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 读取
r.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
#*特殊方法*#
r.json() #Requests中内置的JSON解码器
r.raise_for_status() #失败请求(非200响应)抛出异常

案例一:

 

 1 url = http://ip.taobao.com/service/getIpInfo.php‘ #这是淘宝IP地址的一个API
 2 data = {
 3     ip:8.8.8.8
 4 }    #这里构建一个数据字典
 5 r = requests.get(url,params=data) #传入字典数据给API调用
 6 print r.url #打印对应的属性
 7 
 8 try:
 9     r = requests.get(url,params=data)
10     r.raise_for_status()
11 except requests.RequestException as e:
12     print e
13 else:
14     result = r.json()
15     print type(result),result

 

把字符串当文件上传

 

1 url = http://127.0.0.1:5000/upload
2 files = {file:(test.txt,bHello Requests.)} #将字符串直接当文件传入
3 
4 r = requests.post(url,file=files)
5 print r.text

 

身份验证

 

r = requests.get(https://httpbin.org/hidden-basic-auth/user/passwd,auth=HTTPBasicAuth(user,passwd))
r = requests.get(https://httpbin.org/hidden-basic-auth/user/passwd,auth=(user,passwd)) #简写
print r.json()

 

另一种非常流行的HTTP身份认证形式是摘要式身份认证,Requests对它的支持也是开箱即可用的:

1 requests.get(url,auth=HTTPDigestAuth(user,pass))

Cookies与会话对象

如果某个响应中包含一些Cookie,你可以快速访问它们:

1 r = requests.get(http://www.google.com.hk/)
2 print r.cookies[NID]
3 print tuple(r.cookies)

要想发送你的cookies到服务器,可以使用 cookies 参数:

1 import requests
2  
3 url = http://httpbin.org/cookies
4 cookies = {testCookies_1: Hello_Python3, testCookies_2: Hello_Requests}
5 # 在Cookie Version 0中规定空格、方括号、圆括号、等于号、逗号、双引号、斜杠、问号、@,冒号,分号等特殊符号都不能作为Cookie的内容。
6 r = requests.get(url, cookies=cookies)
7 print(r.json())

 

 

 

 

 

11.Python-第三方库requests详解(三)

标签:其他   txt   hidden   strong   span   get   .com   修改   size   

原文地址:http://www.cnblogs.com/stephenmc/p/7569934.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!