我的工作区有一个相当复杂的PAC文件,用于确定哪些代理HTTP(S)流量应该用于访问各种内部和外部网络。这适用于Chrome,Safari等,但对命令行工具(curl
,大多数脚本语言HTTP库)都很糟糕。正常的解决方案是设置各种环境变量,如HTTP_PROXY
到proxy.example.com:8888
,但这不适用于PAC。相反,我们大多数人在localhost
上运行某种PAC感知代理并通过它发送所有内容。
我的问题是,为什么一开始有必要这样做? OSX很好地评估了自己的连接的PAC规则,但是curl
等等不能吗? networksetup
给了我这个:
$ networksetup -listallhardwareports
Hardware Port: Wi-Fi
Device: en0
Ethernet Address: ...
$ networksetup -getproxyautodiscovery Wi-Fi
Auto Proxy Discovery: On
我认为这意味着通过en0
的任何内容都应该具有代理自动发现功能。那是错的吗?代理自动发现和自动配置是在更高级别进行的,只能通过Apple API(浏览器等使用)访问吗? (如果是这样,我该如何访问它们?)
答案 0 :(得分:2)
OS X 10.11及更高版本包含curl
,这是一个简化的类似curl的实用程序,它使用平台API进行网络传输。我希望它支持代理以及任何OS X应用程序,尽管它没有完整class ViewController: UIViewController {
@IBOutlet weak var testLabel: UILabel!
var savedValue = UserDefaults.standard.bool(forKey: "sound")
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.retrieveValue), name: Notification.Name("nSound"), object: nil)
//For when the view appears the first time
savedValue = UserDefaults.standard.bool(forKey: "sound")
if (savedValue == true) {
testLabel.text = "yes"
} else {
testLabel.text = "no"
}
}
func retrieveValue() {
//refresh the savedValue variable
savedValue = UserDefaults.standard.bool(forKey: "sound")
//test the savedValue variable
if (savedValue == true) {
testLabel.text = "yes"
} else {
testLabel.text = "no"
}
}
的所有功能