2014-12-17 14 views
5

Właśnie zacząłem używać technologii iOS i opracowywałem aplikację na iPhone'a za pomocą Swift.
Próbuję kwerendy serwera za pomocą następującego kodu:Jak skonfigurować serwer proxy w Swift?

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

Ale muszę pełnomocnika konfiguracji w urządzeniu iPhone czy muszę zapytać tego serwera. Teraz chcę skonfigurować serwer proxy http (serwer i port) w samym kodzie Swift.

Zajrzałem do CFProxySupport Reference przez Apple, ale nie rozumiem, jak mogę z niego korzystać. Napisałem następujący kod do tej pory:

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) 

Czy ktoś może mi powiedzieć jak używać proxies do konfiguracji serwera proxy?
Dzięki!

Odpowiedz

1

Architektura umożliwia zbieranie serwerów proxy skonfigurowanych w urządzeniu. Niektóre z tych konfiguracji proxy mogą w rzeczywistości być URL/skryptem automatycznego konfigurowania proxy, więc CFNetworkCopyProxiesForURL może oceniać te skrypty w celu określenia serwerów proxy, które mają zastosowanie do określonego adresu URL.

CFProxySupport nie pozwala skonfigurować serwerów proxy, z których będzie korzystać urządzenie. Ponadto, NSURLConnection nie honoruje ustawień proxy urządzenia. Możesz użyć kodu, który masz do pobrania skonfigurowanego serwera proxy, a następnie użyć go w bibliotece, takiej jak NSURLSession lub AFNetworking, która obsługuje korzystanie z serwera proxy. W NSURLSession określasz konfigurację proxy w słowniku connectionProxy obiektu NSURLSessionConfiguration