iOS установила http прокси с аутентификацией
В приложении для iPhone я хочу добавить прокси для http/https запроса. Что касается моего поиска, то, наконец, код, который я получил, находится ниже:
NSURL *url = [NSURL URLWithString:@"https://www.google.com"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *proxyUsername = @"username";
NSString *proxypassword = @"password";
NSString *authenticationString = [NSString stringWithFormat:@"%@:%@", proxyUsername, proxypassword];
NSData *authenticationData = [authenticationString dataUsingEncoding:NSASCIIStringEncoding];
NSString *authenticationValue = [authenticationData base64EncodedStringWithOptions:0];
authenticationValue = [@"Basic " stringByAppendingString:authenticationValue];
[theRequest setValue:authenticationValue forHTTPHeaderField:@"Proxy-Authorization"];
NSDictionary *proxyDict = @{
(NSString *)kCFNetworkProxiesHTTPEnable : @YES,
(NSString *)kCFNetworkProxiesHTTPProxy : @"proxy",
(NSString *)kCFNetworkProxiesHTTPPort : port,
};
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration];
configuration.connectionProxyDictionary = proxyDict;
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration
delegate:self
delegateQueue:[NSOperationQueue mainQueue]];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:theRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
}];
потому что
CFN_EXPORT const CFStringRef kCFNetworkProxiesHTTPSProxy CF_AVAILABLE(10_6, NA);
так, в моем коде, только имеет настройку http. Конечно добавлю
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
в файле.plist.
Тогда проблема в том, что при подключении к URL-адресу http (например, " http://www.google.com/ ") он работает хорошо. Но если я подключусь к URL- адресу https (например, " https://www.google.com/ "), он сообщит о проблеме SSL.
Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={_kCFStreamErrorCodeKey=-9800, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, NSUnderlyingError=0x1c4444740 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9800, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9800}}, NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSErrorFailingURLKey=https://www.google.com/, NSErrorFailingURLStringKey=https://www.google.com/, _kCFStreamErrorDomainKey=3}
Я не знаю, какая часть имеет проблемы.
У кого-нибудь есть идеи?
И настройки прокси системы, кажется, также только имеет настройку http, работает хорошо.