2014-12-17 35 views
5

Ho appena iniziato a utilizzare le tecnologie iOS e lo sviluppo di un'applicazione iPhone con Swift.
Sto cercando di interrogare server utilizzando seguente codice:Come impostare il proxy in Swift?

var url = NSURL(string: "http://someurl:8080/?type=Refresh") 
var request = NSURLRequest(URL: url!) 
var connection = NSURLConnection(request: request, delegate: self, startImmediately: true) 

Ma ho bisogno di procura di installazione sul mio dispositivo iPhone se ho bisogno di interrogare il server. Quindi ora voglio configurare il proxy http (server e porta) nel codice Swift stesso.

Ho esaminato CFProxySupport Reference da Apple, ma non capisco come posso usarlo. Ho scritto seguente codice fino ad ora:

var proxy_server: CFString = “proxy” // proxy server 
var proxy_port: CFNumber = 8080 // port 

var keys: [CFStringRef] = [kCFProxyTypeKey, kCFProxyHostNameKey, kCFProxyPortNumberKey] 
var values: [CFTypeRef] = [kCFProxyTypeHTTP, proxy_server, proxy_port] 

var proxy_dict: CFDictionary = CFDictionaryCreate(
    kCFAllocatorDefault, 
    UnsafeMutablePointer<UnsafePointer<Void>>(keys), 
    UnsafeMutablePointer<UnsafePointer<Void>>(values), 
    3, 
    nil, 
    nil) 

var proxies: Unmanaged<CFArray> = CFNetworkCopyProxiesForURL(NSURL(string: "http://someurl:8080"), proxy_dict) 

Qualcuno può dirmi come utilizzare proxies alla procura di installazione?
Grazie!

risposta

1

Il framework CFProxySupport consente all'app di recuperare proxy che sono stati configurati nel dispositivo. Alcune di queste configurazioni proxy potrebbero in realtà essere un URL/script di configurazione proxy automatico, pertanto CFNetworkCopyProxiesForURL potrebbe valutare questi script per determinare i proxy che si applicano all'URL specificato.

CFProxySupport non consente di configurare i proxy che verranno utilizzati dal dispositivo. Inoltre, NSURLConnection non rispetta le impostazioni del proxy del dispositivo. È possibile utilizzare il codice necessario per recuperare il proxy configurato e quindi utilizzarlo con una libreria, ad esempio NSURLSession o AFNetworking, che supporta l'utilizzo di un server proxy. In NSURLSession si specifica la configurazione del proxy nel dizionario connectionProxy dell'oggetto NSURLSessionConfiguration

Problemi correlati