我正在使用[NSStream getStreamsToHost:port:inputStream:outputStream:]
创建一个新的流到 Web 服务器来动态地流式传输生成的数据。我将如何设置NSStream
以使用系统 HTTP 代理NSURLConnection
?我找不到有关如何查找系统代理的任何信息,到目前为止,我发现的只是如何针对流设置已知的 SOCKS 代理。
谢谢,J
我正在使用[NSStream getStreamsToHost:port:inputStream:outputStream:]
创建一个新的流到 Web 服务器来动态地流式传输生成的数据。我将如何设置NSStream
以使用系统 HTTP 代理NSURLConnection
?我找不到有关如何查找系统代理的任何信息,到目前为止,我发现的只是如何针对流设置已知的 SOCKS 代理。
谢谢,J
免责声明:
NSStream
/ CF(Read|Write)StreamRef
API 的新手。有了这个,要走的路似乎是使用SystemConfiguration
-framework - 即 function SCDynamicStoreCopyProxies
。
此函数返回 a CFDictionaryRef
,然后可以将其设置为流的kCFStreamPropertyHTTPProxy
-property(任何其他代理类型都应该使用协议的等效键来工作)。
我还不知道,是否必须在 CoreFoundation 级别上设置此属性,或者是否也可以使用- 我强烈假设后者,但同样:我今天-[NSStream setProperty:forKey:]
或多或少地开始认真研究这些 API …… </p>
无论如何, Apple's CFNetworking Programming Guide中有一个名为“导航防火墙”的部分涵盖了这些内容——它对此进行了更详细的描述。
如果有人仍然对此感兴趣,那么整个周末我都找不到一个API。
在 iOS 上,SCDynamicStore
API(在我发布的链接中提到)不存在。然而,还有另一个API 自 iOS 2.0 以来就已经存在,并且自 10.6 以来就出现在 OS X 上:
CFProxySupport
虽然它是框架CFProxySupport
的一部分CFNetwork
,但在“CFNetwork 编程指南”中的任何地方都没有提到它——这很遗憾,因为它简单易用。
向 Apple 的文档提交了一个错误 (rdar://problem/10491759)