Question

Je coder une application iPhone qui a besoin de faire de petites requêtes HTTP à l'Internet. Au sein de notre réseau de corp, tout le trafic HTTP doit passer par Squid.

Le simulateur est bien capable d'utiliser un proxy - depuis Safari Mobile fonctionne. Mais, comment puis-je obtenir / définir les paramètres de proxy dans le code?

Un groupe des en-têtes sont commentées pour le simulateur. Par exemple,

CFNetworkCopySystemProxySettings

Dans CFProxySupport.h n'est pas disponible au simulateur - uniquement au périphérique. J'ai essayé hardcoding comme ceci:

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

Mais pas de joie.

Pensées

Était-ce utile?

La solution 2

Pour fermer cette option. On dirait que cela est fixé dans iOS4 SDK -. La pile réseau sur le simulateur utilisera le proxy du Mac pour les appels HTTP

Autres conseils

Vous pouvez essayer:
 "Préférences Système" -> "Réseau" -> Sélectionnez votre périphérique réseau -> "Advanced" -> "proxies"

Vous pouvez essayer d'utiliser Proxifier: http://www.proxifier.com/mac/ Il vous permet de définir une procuration à tout programme.

Pas ce que vous avez demandé, mais il devrait résoudre votre problème.

On dirait que XCode 4.0 (4A304a) a cassé ce nouveau. Si je mets la pile aux appels proxy http par Burp, fonctionne très bien avec toutes les applications (Safari, etc), mais le simulateur.

Il suffit de redémarrer le simulateur iPhone.

Pour cela, j'utilise l'astuce suivante

aller à l'établissement >> Général >> Accessibilité >> texte en gras pour allumer >> vue sélecteur ouvert et demander un redémarrage pour le rendre efficace >> continuer >> presse simulateur iPhone redémarrer maintenant

la fenêtre contextuelle demander le nom d'utilisateur et mot de passe pour proxy ...

testé dans le simulateur ios 7.1

Cette question est un peu vieux, mais pensé que je pourrais ajouter mes résultats pour référence. Dans le SDK iOS 4.x au moins, le code suivant fonctionne aussi bien sur le simulateur et l'iPhone.

CFDictionaryRef systemProxyDict = CFNetworkCopySystemProxySettings();
CFReadStreamSetProperty(m_resultRef, kCFStreamPropertyHTTPProxy, systemProxyDict);

Le simulateur est probablement pas capable d'utiliser un proxy. Il utilise la pile réseau standard fourni par Mac OS X, et que est ce qui est en utilisant le proxy.

Si les constantes sont commentées lors de l'utilisation du simulateur, et vous avez essayé de coder en dur avec pas de chance, c'est probablement l'une des nombreuses choses qui est tout simplement pas le même entre le simulateur et un dispositif, et vous allons devoir tester cette partie de votre application sur un périphérique.

Juste fermer et rouvrir simulateur après l'application de configuration.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top