OSX:为什么curl 不使用自动代理配置/PAC?

And*_*ewO 5 macos proxy curl pac

我的工作场所有一个相当复杂的PAC文件,用于确定应使用哪个代理 HTTP(S) 流量来访问各种内部和外部网络。这对于 Chrome、Safari 等来说很好,但对于命令行工具(curl大多数脚本语言 HTTP 库)来说就很糟糕了。正常的解决方案是设置各种环境变量,例如HTTP_PROXYto proxy.example.com:8888,但这不适用于 PAC。相反,我们大多数人都运行某种 PAC 感知代理localhost并通过该代理发送所有内容。

我的问题是,为什么这一切首先是必要的?OSX 可以很好地评估其自身连接的 PAC 规则,但是curl等不能吗?networksetup给了我这个:

$ networksetup -listallhardwareports
Hardware Port: Wi-Fi
Device: en0
Ethernet Address: ...
$ networksetup -getproxyautodiscovery Wi-Fi
Auto Proxy Discovery: On
Run Code Online (Sandbox Code Playgroud)

我认为这意味着任何发生的事情都en0应该有代理自动发现。这是错误的吗?代理自动发现和自动配置是否发生在只能通过 Apple API(哪些浏览器等使用)访问的更高级别?(如果是这样,我如何访问它们?)

Bre*_*nks 4

OS X 10.11 及更高版本包含nscurl,它是一个简化的类似curl 的实用程序,使用平台API 进行网络传输。我希望它能够像任何 OS X 应用程序一样支持代理,尽管它不具备完整的所有功能curl