python请求nginx basic认证的页面()-python
python请求nginx basic认证的页面()
python请求nginx basic认证的页面
问题:
python在请求过程中会遇到nginx反向代理并通过basic设置了用户名密码校验的页面或者接口,此时直接requests请求回返回401,那么下面就用特别简单的办法来解决这个问题。
办法一:
@classmethoddef get_pod_info(cls): req_url = cls.prometheus_url + '/api/v1/query?query=kube_pod_info' prometheus_res = requests.get(url=req_url, auth=('prometheus', 'prometheus@MLI')) print(prometheus_res.status_code) return True
办法二:
import urllib2
theurl = 'http://127.0.0.1'
username = 'admin'
password = 'admin'
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, theurl, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
pagehandle = urllib2.urlopen(f'{theurl}/api/v1/query?query=kube_pod_info')
办法三:
适合服务器上使用(bash)
curl -u admin:admin http://127.0.0.1/api/v1/query?query=kube_pod_info -v
————————
python请求nginx basic认证的页面
问题:
python在请求过程中会遇到nginx反向代理并通过basic设置了用户名密码校验的页面或者接口,此时直接requests请求回返回401,那么下面就用特别简单的办法来解决这个问题。
办法一:
@classmethoddef get_pod_info(cls): req_url = cls.prometheus_url + '/api/v1/query?query=kube_pod_info' prometheus_res = requests.get(url=req_url, auth=('prometheus', 'prometheus@MLI')) print(prometheus_res.status_code) return True
办法二:
import urllib2
theurl = 'http://127.0.0.1'
username = 'admin'
password = 'admin'
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, theurl, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
pagehandle = urllib2.urlopen(f'{theurl}/api/v1/query?query=kube_pod_info')
办法三:
适合服务器上使用(bash)
curl -u admin:admin http://127.0.0.1/api/v1/query?query=kube_pod_info -v