在做API平台时,虽然提供给用户执行日志系统,但是由于一些异常或者存在的问题,导致并不是那么好的调试
需要实现一个功能,用户在调试用例接口时,可以抓到实际请求的数据包,故需要实现一个代理的功能
如果需要使用代理,可以通过为任意请求方法提供 proxies 参数来配置单个请求:
import requests
proxies = {
'http': 'http://172.18.101.221:3182',
'https': 'http://172.18.101.221:1080',
}
requests.get("http://example.org", proxies=proxies)
也可以通过环境变量 HTTP_PROXY 和 HTTPS_PROXY 来配置代理:
$ export HTTP_PROXY="http://10.10.1.10:3128"
$ export HTTPS_PROXY="http://10.10.1.10:1080"
$ python
import requests
requests.get("http://example.org")
若代理需要使用HTTP Basic Auth,可以使用 http://user:password@host/ 语法:
proxies = {
"http": "http://user:pass@10.10.1.10:3128/",
}
要为某个特定的连接方式或者主机设置代理,使用 scheme://hostname 作为 key, 它会针对指定的主机和连接方式进行匹配:
proxies = {'http://10.20.1.128': 'http://10.10.1.10:5323'}
PS:代理 URL 必须包含连接方式
在实现代理功能后,如果用户使用fiddler,需要开启远程连接
开启fiddler该功能步骤如下:
fiddler远程代理的监听端口默认为8888
故proxies设置如下即可
proxies = {
'http': 'http://172.18.101.221:8888',
'https': 'http://172.18.101.221:8888',
}
http请求经过 'http': 'http://172.18.101.221:8888'
的代理设置,https请求经过'https': 'http://172.18.101.221:8888'
的代理设置