iOS发送网络请求时设置HTTP代理

需求:iOS发送网络请求时设置HTTP代理

解决方法:利用NSURLSession发送网络请求,并进行相应的设置。

代码例:

NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];

    sessionConfig.requestCachePolicy = NSURLRequestReloadIgnoringLocalCacheData;

    sessionConfig.connectionProxyDictionary =

    @{(NSString *)kCFStreamPropertyHTTPSProxyHost:@"XXX.XXX.XXX.XXX",

      (NSString *)kCFStreamPropertyHTTPSProxyPort:@XXXX,

      (NSString *)kCFNetworkProxiesHTTPEnable:@YES

      };

    NSString* proxyIDPasswd = [NSString stringWithFormat:@"XXXX:XXXXX"];

    NSData* proxyoriginData = [proxyIDPasswd dataUsingEncoding:NSUTF8StringEncoding];

    NSData* proxyencodeData = [GTMBase64 encodeData:proxyoriginData];

    NSString *proxyencodeResult = [[NSString alloc] initWithData:proxyencodeData encoding:NSUTF8StringEncoding];

    NSString *proxyendcode =[NSString stringWithFormat:@"Basic %@",proxyencodeResult];

    [request addValue:proxyendcode forHTTPHeaderField:@"Proxy-Authorization"];

NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:selfdelegateQueue:[NSOperationQueue mainQueue]];

    NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse * response, NSError *error) {

   }];

    [task resume];

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容