python+request 常用基础学习笔记

1、pycharm,避免控制台输出的json内容中文出现乱码。

#注:乱码为Unicode格式:u6d4bu8bd5。加入如下代码后正确返回中文:测试 
get_result = r.json() print json.dumps(get_result, encoding="utf-8", ensure_ascii=False)

2、接口性能响应时间的获取(测试接口慢请求)

requests.post(url=url, data=data, headers=headers, verify=False, timeout=15)   #请求头中加入timeout
print ("请求此接口的响应时间:"+str(r.elapsed.total_seconds()))  #r.elapsed.total_seconds() 获取接口的响应时间

3、响应内容

r.raw       #返回原始响应体,也就是urllib的renponse对象,返回结果示例:<urllib3.response.HTTPResponse object at 0x1097732d0>
r.headers   #已字典对象存储服务器响应头,此字典比较特殊,字典键不区分大小写,若键不存在则返回None
r.text       #字符串方式的响应体,返回的是文本,type 是'unicode'
r.json()    #request中内置的json解码器,返回的是json格式数据,type 是”dict"
r.content   #字节方式的响应体(也就是二进制的数据),想获取图片、文件等,则可使用此方式,type 是 “str"
r.raise_for_status()   #失败请求(非200响应)跑出异常,若是200,则返回None。
r.request    #返回请求的类型,post或者get等
r.url       #获取请求的URL

a = (r.text,r.encoding)   #获取的type 是 ”tuple"
print a

r.encoding   #获取响应的编码方式。注:通过r.encoding获取的若不是utf-8的格式,可使用 r.encoding='utf-8'设定

4、获取响应头中的某个值

print r.headers       #可获取到全部的headers中内容,因返回的是字典,所以可直接取值
print r.headers['Content-Type']   #获取某个请求头中的参数值内容

5、获取响应体中的某个值,用来做测试结果的校验

r.json()          #已字典的格式,获取到reponse内容
r.json()["msg"]    #获取到reponse中的msg值
r.json()["data"]["uuid"]     #获取到reponse中的data下uuid的值。注:自己获取什么值,根据r.json()的返回字典内容层级,依次查找值。

6、

原文地址:https://www.cnblogs.com/syw20170419/p/11008329.html