我刚开始使用iOS技术,并使用Swift开发iPhone应用程序 我正在尝试使用以下代码查询服务器:
var url = NSURL(string: "http://someurl:8080/?type=Refresh")
var request = NSURLRequest(URL: url!)
var connection = NSURLConnection(request: request, delegate: self, startImmediately: true)
但是如果我需要查询该服务器,我需要在我的iPhone设备上设置代理。 所以现在我想在Swift代码中设置http代理(服务器和端口)。
我查看了Apple的CFProxySupport Reference,但没有理解我该如何使用它。 我写了以下代码,直到现在:
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)
有人可以告诉我如何使用proxies
设置代理吗?
谢谢!
答案 0 :(得分:2)
CFProxySupport
框架允许您的应用检索已在设备中配置的代理。其中一些代理配置实际上可能是自动代理配置URL /脚本 - 因此CFNetworkCopyProxiesForURL
可以评估这些脚本以确定应用于指定URL的代理。
CFProxySupport
不允许您配置设备将使用的代理。此外,NSURLConnection
并不尊重设备代理设置。您可以使用您拥有的代码来检索已配置的代理,然后将其用于支持使用代理服务器的库(例如NSURLSession或AFNetworking)。在NSURLSession中,您在NSURLSessionConfiguration对象的connectionProxy
字典中指定代理配置