公司推进Jenkins自动化部署,因为web站点都是集群部署,部署需要测试指定服务器web服务是否成功启动,页面是否正常访问,经过不断baidu发现,python的request模块可以很好的解决这一问题。本文记录了解决这一问题的过程。
- 安装包管理工具pip
- 安装requests模块
- 请求http资源
- 指定ip访问http资源
安装包管理工具pip
- 上一篇第一个python程序,需要第三方类库时,都是去官网手动下载,实际上python有很好的包管理工具pip。安装过程参考网上,官网下载安装包,执行python setup.py install,配置环境变量,命令行执行pip -V,显示pip版本信息,pip安装成功。
- 如何发布自己的pip项目,参考https://blog.csdn.net/fengmm521/article/details/79144407。
安装requests模块
- 极其简单,命令行执行pip install requests即可。
请求http资源
- 实现http请求完整代码如下:
# -*- coding: UTF-8 -*- import requests r = requests.get(url='https://www.python.org/search/' , params={'q':'pip'}) print(r.text)
指定ip访问http资源
- 完整代码如下,正常请求地址为http://www.domain.com/iistools/iptest.aspx,通过如下方式,则访问到指定IP地址218.32.11.16。
# -*- coding: UTF-8 -*- import requests response = requests.get('http://218.32.11.16/iistools/iptest.aspx', headers={'host': 'domain.com'}) print(response.text)
- 感觉这个方法很实用,可以不用修改本地hosts文件,而实现指定服务器访问,可以给很多工作带来便利。
指定IP访问的原理
通过域名形式访问时,域名有两个作用:1)寻址找到域名对应的服务器资源;2)浏览器自动在请求头添加host:domain.com ,目的是定位到服务器n多站点中绑定了该域名的站点,所以可以把http请求携程上述代码形式。知道了原理后,各个语言实现起来都不难。
参考资源: