19

インターネットに対して小さな HTTP 要求を行う必要がある iPhone アプリをコーディングしています。社内 LAN 内では、すべての HTTP トラフィックが Squid を通過する必要があります。

Mobile Safari が動作するため、シミュレーターは明らかにプロキシーを使用できます。しかし、コードでプロキシ設定を取得/設定するにはどうすればよいですか?

ヘッダーの束は、シミュレーター用にコメントアウトされています。例えば、

CFNetworkCopySystemProxySettings

CFProxySupport.h では、シミュレーターでは使用できません。デバイスでのみ使用できます。私はこのようにハードコーディングを試みました:

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

しかし、喜びはありません。

考え?

4

8 に答える 8

6

試すことができます:
「システム環境設定」->「ネットワーク」->ネットワークデバイスを選択->「詳細」->「プロキシ」

于 2009-07-23T05:31:32.117 に答える
5

これを閉じるには。これはiOS4SDKで修正されているようです。シミュレーターのネットワークスタックは、HTTP呼び出しにMacのプロキシを使用します。

于 2010-11-23T23:00:08.343 に答える
5

Proxifier の使用を試すことができます: http://www.proxifier.com/mac/ これにより、任意のプログラムにプロキシを設定できます。

あなたが尋ねたものではありませんが、それはあなたの問題を解決するはずです。

于 2009-02-18T04:39:32.147 に答える
2

XCode 4.0(4A304a)がこれを再び破ったようです。Burpを介してhttp呼び出しをプロキシするようにスタックを設定すると、シミュレーター以外のすべてのアプリ(Safariなど)で正常に動作します。

于 2011-03-14T18:35:45.287 に答える
2

iPhone シミュレーターを再起動するだけです。

このために、次のトリックを使用します

設定 >> 一般 >> アクセシビリティ >> 太字のテキストでオンに切り替え >> ピッカー ビューを開き、有効にするために再起動を要求 >> 続行を押す >> iPhone シミュレーターを今すぐ再起動

プロキシのユーザー名とパスワードを求めるポップアップ...

iOSシミュレーター7.1でテスト済み

于 2014-03-12T12:27:04.823 に答える
1

この質問は少し古いですが、参考のために調査結果を追加すると思いました。少なくとも iOS 4.x SDK では、次のコードはシミュレーターと iPhone の両方で機能します。

CFDictionaryRef systemProxyDict = CFNetworkCopySystemProxySettings();
CFReadStreamSetProperty(m_resultRef, kCFStreamPropertyHTTPProxy, systemProxyDict);
于 2010-09-15T18:55:05.973 に答える
0

シミュレーターはおそらくプロキシーを使用できません。Mac OS X が提供する標準のネットワーク スタックを使用しており、それがプロキシを使用しているものです

シミュレーターの使用中に定数がコメントアウトされ、それをハードコーディングしようとして運がなかった場合、これはおそらく、シミュレーターとデバイスの間で単に同じではない多くのことの 1 つです。デバイスでアプリケーションのこの部分をテストします。

于 2009-08-21T21:28:41.633 に答える