测试

[Python系列]Python的request库

2017-07-26  本文已影响35人  测试你个头

Python经常被用来做爬虫和http接口测试,很大一部分原因就是requests库的方便易用,实际学习过程中可以对比下java的httpclient包。

1.安装requests库

pip install requests

requests定义了常用的http方法:

requests.get(“https://xxx”) #GET请求
requests.post(“https://xxx”) #POST请求
requests.put(“https://xxx/put”) #PUT请求
requests.delete(“https://xxx/delete”) #DELETE请求
requests.head(“https://xxx/get”) #HEAD请求
requests.options(“https://xxx/get”) #OPTIONS请求
```
以最常用的get方法为例:
```
# 不带参数的get方法
def member_in():
    ret = None
    try:
        ret = requests.get(globals.member_in_url)
    except Exception as e:
        logging.info("member_in failed : " + e.message)
        return

    sid = ret.content
    logging.info("member_in success " + sid)

    return sid

# 带参数的get方法
def member_out(sid):
    try:
        # get可通过url传参
        requests.get(globals.member_out_url + "?sid=" + sid)
        # requests.get(globals.member_out_url, params={'sid': sid})
    except Exception as e:
        logging.info("member_out failed :" + e.message)
        return
    logging.info("member_out success : " + sid)
    return
```
post方法带参数:
```
import requests
import json

# 键值对参数
requests.post(globals.member_out_url, data={'intence': 'POST测试'})

# 待json参数
requests.post(globals.member_out_url, data=json.dumps({'intence': 'POST测试'}))
```
设置header
```
import requests
import json
 
data = {'test': 'testdata'}
headers = {'content-type': 'application/json','xxx','yyy'}
 
r = requests.post(globals.member_out_url, data=data, headers=headers)
print(r.text)
```

3.response对象
requests的方法会返回一个response对象,类似java里面的HttpResponse
```
r = requests.get(globals.member_out_url)

logger.info(r.status_code)  #返回http状态码。
logger.info(r.raw) #返回原始响应体,也就是 urllib 的 response 对象。
logger.info(r.content) #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。
logger.info(r.text) #字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
logger.info(r.headers) #以字典对象存储服务器响应头。
```

4.其他
cookie,鉴权等等
上一篇下一篇

猜你喜欢

热点阅读