프록시를 설정하려고합니다. 다음은 내 코드입니다.Web-view swift에서 프록시를 설정하는 방법은 무엇입니까?
func startLoading() {
let proxy_server: CFString = "abc.somecompanyname.com" // proxy server
let proxy_port: CFNumber = 1234 // port
//"request" is your NSURLRequest
let url: NSURL = request.URL!
let urlString: String = url.absoluteString
let urlStringRef: CFString = (urlString as CFString)
let myURL: CFURLRef = CFURLCreateWithString(kCFAllocatorDefault, urlStringRef, nil)
let requestMethod: CFString = "GET"//CFSTR("GET")
// let myRequest = CFHTTPMessageCreateRequest(kCFAllocatorDefault, "GET", myURL, kCFHTTPVersion1_1).takeRetainedValue()
let myRequest: CFHTTPMessageRef = CFHTTPMessageCreateRequest(kCFAllocatorDefault, requestMethod, myURL, kCFHTTPVersion1_1).takeRetainedValue()
//CFHTTPMessageCreateRequest(kCFAllocatorDefault, requestMethod, myURL, kCFHTTPVersion1_1)
httpMessageRef = CFHTTPMessageCreateCopy(kCFAllocatorDefault, myRequest).takeRetainedValue()
let myReadStream: CFReadStreamRef = CFReadStreamCreateForHTTPRequest(kCFAllocatorDefault, myRequest).takeRetainedValue()//CFReadStreamCreateForHTTPRequest(kCFAllocatorDefault, myRequest)
// You can add body, headers.... using core function api, CFNetwork.etc
// below code is to set proxy from code if needs }
var hostKey: NSString
var portKey: NSString
/*
if (url.scheme.lowercaseString == "https") {
hostKey = kCFStreamPropertyHTTPSProxyHost as NSString
portKey = kCFStreamPropertyHTTPSProxyPort as NSString
} else {
hostKey = kCFStreamPropertyHTTPProxyHost as NSString
portKey = kCFStreamPropertyHTTPProxyPort as NSString
}
*/
hostKey = kCFNetworkProxiesHTTPProxy as NSString
portKey = kCFNetworkProxiesHTTPPort as NSString
let proxyToUse: [NSObject : AnyObject] = [
hostKey : proxy_server,
portKey : proxy_port
]
CFReadStreamSetProperty(myReadStream, kCFNetworkProxiesHTTPProxy, proxyToUse)
CFReadStreamOpen(myReadStream)
}
프록시를 설정하는 데있어서 잘못된 점을 알려주십시오.
CFReadStreamCreateForHTTPRequest
은 사용되지 않으므로 대신 그 대신 사용해야합니다. 나는 프록시 관련 물건에 대해서는 아직 미성숙하다. 그래서 나에게 똑같은 것에 대해 더 많이 알려주고 더 나은 방식으로 이것을 처리 할 것을 제안한다.
덕분에 당신은 사용자 정의 URL 프로토콜 핸들러를 생성하면
원래 프록시 (IP 주소 및 포트)를 숨길 수있는 ios를 만들고 싶습니다.이 경우 작동합니까? 어떻게 구현할 수 있습니까? – ShreePool