我正在使用[NSStream getStreamsToHost:port:inputStream:outputStream:]
创建一个到Web服务器的新流,以便即时传输生成的数据。我如何设置NSStream
以使用像NSURLConnection
这样的系统HTTP代理?我找不到有关如何查找系统代理的任何信息,到目前为止我发现的是如何针对流设置已知的SOCKS代理。
谢谢, Ĵ
答案 0 :(得分:0)
免责声明:
NSStream
/ CF(Read|Write)StreamRef
API的新手。有了这个,的方式出现使用SystemConfiguration
- 框架 - 即函数SCDynamicStoreCopyProxies
。
此函数返回CFDictionaryRef
,然后可以将其设置为流的kCFStreamPropertyHTTPProxy
- 属性(任何其他代理类型都应使用协议的等效密钥)。
我还不知道,是否必须在CoreFoundation级别设置此属性,或者是否有可能使用-[NSStream setProperty:forKey:]
- 我强烈假设后者,但又一次:我或多或少开始认真研究这些API 今天 ......
无论如何,有一个名为"Navigating Firewalls"的部分涵盖了Apple的CFNetworking Programming Guide中的这些内容 - 其中更详细地描述了这一点。
如果有人仍然对此感兴趣,那么整个周末我都会设法不找到API。
在iOS上,SCDynamicStore
API(我发布的链接中引用的)不存在。但是,另一个 API自iOS 2.0开始就存在,并且自10.6以来就出现在OS X上:
CFProxySupport
尽管CFProxySupport
是CFNetwork
框架的一部分,但在“CFNetwork编程指南”中没有提到它 - 这是一种耻辱,因为它使用简单,令人愉快。
提交了Apple的文档错误(rdar:// problem / 10491759)