公司推進Jenkins自動化部署,因為web站點都是集群部署,部署需要測試指定伺服器web服務是否成功啟動,頁面是否正常訪問,經過不斷baidu發現,python的request模塊可以很好的解決這一問題。本文記錄瞭解決這一問題的過程。 安裝包管理工具pip 安裝requests模塊 請求http資 ...
公司推進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請求攜程上述代碼形式。知道了原理後,各個語言實現起來都不難。
參考資源:
- https://stackoverflow.com/questions/29995133/python-requests-use-navigate-site-by-servers-ip
- https://blog.csdn.net/jfchef/article/details/7693517