Использование системного прокси в NSStream - PullRequest
0 голосов
/ 28 февраля 2011

Я использую [NSStream getStreamsToHost:port:inputStream:outputStream:] для создания нового потока на веб-сервер для потоковой передачи сгенерированных данных на лету.Как мне настроить NSStream на использование системного HTTP-прокси, как NSURLConnection?Я не могу найти никакой информации о том, как искать системный прокси, пока что все, что я обнаружил, это как настроить известный прокси-сервер SOCKS для потока.

Спасибо, J

1 Ответ

0 голосов
/ 27 ноября 2011

Отказ от ответственности:

  • Я сам еще не пробовал.
  • Я новичок в использовании API NSStream / CF(Read|Write)StreamRef.

При таком подходе путь кажется использованием SystemConfiguration -рамки, а именно функции SCDynamicStoreCopyProxies.

* 1018.* Эта функция возвращает CFDictionaryRef, который затем может быть установлен как kCFStreamPropertyHTTPProxy -объект потока (любой другой тип прокси должен работать с использованием эквивалентного ключа протокола).

Я пока не знаю,обязательно ли устанавливать это свойство на уровне CoreFoundation или если возможно также использование -[NSStream setProperty:forKey:] - я решительно предполагаю последнее, но опять-таки: я более или менее серьезно начал изучать эти API сегодня

В любом случае, есть раздел под названием «Навигация по брандмауэрам» , в котором описывается этот материал в Руководстве по программированию CFNetworking от Apple , которое описывает это более подробно.


Обновление

На случай, если кто-то еще заинтересованИтак, есть API, который мне удалось не найти, все выходные.

В iOS API SCDynamicStore (на которые есть ссылка, которую я разместил) делаютне существует.Однако существует еще один API, который существует с iOS 2.0 и присутствует в OS X с 10.6:

CFProxySupport

Хотя CFProxySupport является частьюиз CFNetwork фреймворка, он нигде не упоминается в «Руководстве по программированию CFNetwork» - что обидно, потому что его просто и приятно использовать.

Подана ошибка с документами Apple (rdar: //проблема / 10491759)

...