接口测试-编程

一、linux 下发送http请求

wget 发送json格式的请求方式

wget --post-data "username=xxxxxxxxxx&password=xxxxxxxxxx&iprange=no" url

curl 发送json格式的请求方式

curl -X POST -D "username=xxxxxxxxxx&password=xxxxxxxxxx&iprange=no" https://xxx.edu.cn/cas/webLogin

二、python-requests

requests是使用Apache2 licensed 许可证的HTTP库。

比urllib2模块更简洁。

Request支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动响应内容的编码,支持国际化的URL和POST数据自动编码。

在python内置模块的基础上进行了高度的封装,从而使得python进行网络请求时,变得人性化,使用Requests可以轻而易举的完成浏览器可有的任何操作。

requests会自动实现持久连接keep-alive

1)发送请求的简洁

requests.get(‘https://github.com/timeline.json’) # GET请求 requests.post(“http://httpbin.org/post”) # POST请求    requests.put(“http://httpbin.org/put”) # PUT请求 requests.delete(“http://httpbin.org/delete”) # DELETE请求 requests.head(“http://httpbin.org/get”) # HEAD请求 requests.options(“http://httpbin.org/get” ) # OPTIONS请求

2)为url传递参数

url_params = {'key':'value'}    # 字典传递参数,如果值为None的键不会被添加到url中

r = requests.get('your url',params = url_params)

3)响应的内容

r.encoding #获取当前的编码

r.encoding = 'utf-8'   #设置编码

r.text      #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。

r.content   #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。

r.headers  #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None

r.status_code   #响应状态码

r.raw   #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read() 

r.ok    # 查看r.ok的布尔值便可以知道是否登陆成功

r.json()  #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常

r.raise_for_status()  #失败请求(非200响应)抛出异常

4)定制头和cookie信息

header = {'user-agent':'my-app/0.0.1''}

cookie = {'key':'value'}

r = requests.get/post('your url',headers=header,cookies=cookie)

5)响应

r.headers    #返回字典类型,头信息

r.requests.headers    #返回发送到服务器的头信息

r.cookies    #返回cookie

r.history    #返回重定向信息,当然可以在请求是加上allow_redirects = false 阻止重定向

6)超时

r = requests.get('url',timeout=1)    #设置秒数超时,仅对于连接有效

7)    会话对象,能够跨请求保持某些参数

s = requests.Session()

s.auth = ('auth','passwd')

s.headers = {'key':'value'}

r = s.get('url')

r1 = s.get('url1')

8)代理

proxies = {'http':'ip1','https':'ip2' }

requests.get('url',proxies=proxies)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容