0

我正在使用[NSStream getStreamsToHost:port:inputStream:outputStream:]创建一个新的流到 Web 服务器来动态地流式传输生成的数据。我将如何设置NSStream以使用系统 HTTP 代理NSURLConnection?我找不到有关如何查找系统代理的任何信息,到目前为止,我发现的只是如何针对流设置已知的 SOCKS 代理。

谢谢,J

4

1 回答 1

0

免责声明:

  • 我自己还没有尝试过。
  • 我是使用NSStream/ CF(Read|Write)StreamRefAPI 的新手。

有了这个,要走的路似乎是使用SystemConfiguration-framework - 即 function SCDynamicStoreCopyProxies

此函数返回 a CFDictionaryRef,然后可以将其设置为流的kCFStreamPropertyHTTPProxy-property(任何其他代理类型都应该使用协议的等效键来工作)。

我还不知道,是否必须在 CoreFoundation 级别上设置此属性,或者是否也可以使用- 我强烈假设后者,但同样:我今天-[NSStream setProperty:forKey:]或多或少地开始认真研究这些 API …… </p>

无论如何, Apple's CFNetworking Programming Guide中有一个名为“导航防火墙”的部分涵盖了这些内容——它对此进行了更详细的描述。


更新

如果有人仍然对此感兴趣,那么整个周末我都找不到一个API。

在 iOS 上,SCDynamicStoreAPI(在我发布的链接中提到)不存在。然而,还有另一个API 自 iOS 2.0 以来就已经存在,并且自 10.6 以来就出现在 OS X 上:

CFProxySupport

虽然它是框架CFProxySupport的一部分CFNetwork,但在“CFNetwork 编程指南”中的任何地方都没有提到它——这很遗憾,因为它简单易用。

向 Apple 的文档提交了一个错误 (rdar://problem/10491759)

于 2011-11-26T21:36:37.530 回答