我正在编写一个需要访问 Internet 的应用程序。从某些主机连接需要通过代理。我知道可以在环境变量上设置代理,但我想从应用程序本身进行。我需要一个可以以三种不同方式使用的命令行参数:
- 根本没有给出 -> 没有代理
- --use-proxy -> 使用默认代理
- --use-proxy " http://my-proxy.com:880 " -> 使用给定的代理
以下使用默认或给定地址,但不能用于忽略代理:
use_proxy := flag.String("use-proxy", " http://my-proxy.com:880 ", "使用代理...")
这一项仅完成第 1 点和第 2 点:
use_proxy := flag.Bool("use-proxy", false , "Use proxy...")
if *use_proxy {
...
proxyUrl, err := url.Parse("http://my-proxy.com:880")
...
}
这个问题可以用两个标志来解决,但我宁愿只使用一个:
myapp --use-proxy --proxy " http://my-proxy.com:880 "