2014-12-17 17 views
5

Tôi vừa mới bắt đầu sử dụng công nghệ iOS và phát triển ứng dụng iPhone bằng Swift.
tôi đang cố gắng để truy vấn máy chủ sử dụng đoạn mã sau:Làm cách nào để thiết lập proxy trong Swift?

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

Nhưng tôi cần phải ủy quyền thiết lập trên thiết bị iPhone của tôi nếu tôi cần phải truy vấn máy chủ đó. Vì vậy, bây giờ tôi muốn thiết lập http proxy (máy chủ và cổng) trong mã Swift chính nó.

Tôi đã xem xét CFProxySupport Reference bởi Apple, nhưng không hiểu cách tôi có thể sử dụng nó. Tôi đã viết mã sau đây cho đến bây giờ:

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) 

Bất cứ ai có xin vui lòng cho tôi biết làm thế nào để sử dụng proxies để proxy thiết lập?
Cảm ơn!

Trả lời

1

Khuôn khổ CFProxySupport cho phép ứng dụng của bạn truy xuất proxy đã được định cấu hình trong thiết bị. Một số cấu hình proxy này thực sự có thể là URL/tập lệnh cấu hình proxy tự động - vì vậy CFNetworkCopyProxiesForURL có thể đánh giá các tập lệnh này để xác định proxy áp dụng cho URL được chỉ định.

CFProxySupport không cho phép bạn định cấu hình proxy mà thiết bị sẽ sử dụng. Hơn nữa, NSURLConnection không tôn trọng cài đặt proxy của thiết bị. Bạn có thể sử dụng mã bạn phải truy xuất proxy được cấu hình và sau đó sử dụng nó với một thư viện, chẳng hạn như NSURLSession hoặc AFNetworking, nó hỗ trợ việc sử dụng máy chủ proxy. Trong NSURLSession bạn chỉ định cấu hình proxy trong từ điển connectionProxy của đối tượng NSURLSessionConfiguration

Các vấn đề liên quan