iPhone Simulator - установить HTTP прокси - PullRequest
17 голосов
/ 11 февраля 2009

Я пишу приложение для iPhone, которое должно отправлять небольшие HTTP-запросы в Интернет. В нашей корпоративной локальной сети весь HTTP-трафик должен проходить через Squid.

Симулятор явно способен использовать прокси - так как Mobile Safari работает. Но как мне получить / установить настройки прокси в коде?

Куча заголовков закомментирована для симулятора. Например,

CFNetworkCopySystemProxySettings

В CFProxySupport.h недоступен симулятор - только для устройства. Я попробовал жесткое кодирование, как это:

CFReadStreamSetProperty(stream, kCFProxyHostNameKey, @"internal.proxy.servername");
CFReadStreamSetProperty(stream, kCFProxyPortNumberKey, [NSNumber numberWithInt:80]);
CFReadStreamSetProperty(stream, kCFProxyTypeKey, kCFProxyTypeHTTP);

Но не радость.

Мысли

Ответы [ 8 ]

6 голосов
/ 23 июля 2009

Вы можете попробовать:
«Системные настройки» -> «Сеть» -> Выберите сетевое устройство -> «Дополнительно» -> «Прокси»

5 голосов
/ 24 ноября 2010

Чтобы закрыть это. Похоже, это исправлено в iOS4 SDK - сетевой стек на симуляторе будет использовать прокси Mac для любых HTTP-вызовов.

4 голосов
/ 18 февраля 2009

Вы можете попробовать использовать Proxifier: http://www.proxifier.com/mac/ Позволяет установить прокси для любой программы.

Не то, что вы спросили, но это должно решить вашу проблему.

2 голосов
/ 12 марта 2014

Просто перезапустите симулятор iPhone.

для этого я использую следующий трюк

перейдите к настройке >> Общие >> Специальные возможности >> полужирный шрифт для включения >> откройте окно выбора и попросите перезапустить, чтобы сделать его эффективным >> нажмите «Продолжить»

всплывающее окно с запросом имени пользователя и пароля для прокси ...

протестировано в симуляторе ios 7.1

2 голосов
/ 14 марта 2011

Похоже, XCode 4.0 (4A304a) снова сломал это. Если я установлю в стеке прокси-вызовы http через Burp, он будет отлично работать со всеми приложениями (Safari и т. Д.), Кроме симулятора.

1 голос
/ 15 сентября 2010

Этот вопрос немного старый, но я подумал, что я добавлю свои выводы для справки. Как минимум, в iOS 4.x SDK следующий код работает как на симуляторе, так и на iPhone.

CFDictionaryRef systemProxyDict = CFNetworkCopySystemProxySettings();
CFReadStreamSetProperty(m_resultRef, kCFStreamPropertyHTTPProxy, systemProxyDict);
0 голосов
/ 14 апреля 2015

Просто закройте и снова откройте симулятор после применения конфигурации.

0 голосов
/ 22 августа 2009

Симулятор, вероятно, не способен использовать прокси. Он использует стандартный сетевой стек, предоставляемый Mac OS X, и означает, что - это то, что использует прокси.

Если константы закомментированы во время использования симулятора, и вы попытались жестко запрограммировать их без удачи, то это, вероятно, одна из многих вещей, которые просто не совпадают между симулятором и устройством, и вы Вам придется протестировать эту часть вашего приложения на устройстве.

...