iOS9苹果将原http协议改成了https协议的方法

嘘财厚

嘘财厚

2016-02-19 09:15

下面图老师小编跟大家分享一个简单易学的iOS9苹果将原http协议改成了https协议的方法教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

解决方法:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

在info.plist 加入key

keyNSAppTransportSecurity/keydictkeyNSAllowsArbitraryLoads/keytrue//dict

下面给大家介绍ios中http 和https 协议的访问

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

最近做个项目,开始采用的是HTTP协议实现客户端和服务器端的交互,后来需要改成HTTPS协议。在修改的过程中发现了一些问题,解决方案如下:

HTTP:

NSString *urlString =[NSString stringWithFormat:@"https://127.0.0.1/default.aspx?USER=%@",@"111"];NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];[request setURL:[NSURL URLWithString:urlString]];[request setHTTPMethod:@"GET"];NSHTTPURLResponse* urlResponse = nil;NSError *error = [[NSError alloc] init];NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&urlResponse error:&error];NSMutableString *result = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];NSLog(@"The result string is :%@",result); 

HTTPS

事件触发

{ NSString *urlString =[NSString stringWithFormat:@"https://127.0.0.1/default.aspx?USER=%@",@"111"];NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:urlString] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:5];//设置请求方式为get[request setHTTPMethod:@"GET"];//添加用户会话id[request addValue:@"text/html" forHTTPHeaderField:@"Content-Type"];//连接发送请求finished = false;NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];//堵塞线程,等待结束while(!finished) {[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];}} - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse*)response {}- (void)connectionDidFinishLoading:(NSURLConnection *)connection {//[_waitingDialog dismissWithClickedButtonIndex:0 animated:NO];[connection release];}-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{ }- (BOOL)connectionShouldUseCredentialStorage:(NSURLConnection *)connection{return NO;}//下面两段是重点,要服务器端单项HTTPS 验证,iOS 客户端忽略证书验证。- (BOOL)connection:(NSURLConnection *)connection canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace {return [protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust];} - (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge { NSLog(@"didReceiveAuthenticationChallenge %@ %zd", [[challenge protectionSpace] authenticationMethod], (ssize_t) [challenge previousFailureCount]);if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]){[[challenge sender] useCredential:[NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust] forAuthenticationChallenge:challenge];[[challenge sender] continueWithoutCredentialForAuthenticationChallenge: challenge];}} NSLog(@"get the whole response");//[receivedData setLength:0];}//处理数据 - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{ } 
展开更多 50%)
分享

猜你喜欢

iOS9苹果将原http协议改成了https协议的方法

编程语言 网络编程
iOS9苹果将原http协议改成了https协议的方法

Delphi编程中Http协议应用(一)

Delphi
Delphi编程中Http协议应用(一)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

AJAX快速入门之HTTP协议基础

电脑网络
AJAX快速入门之HTTP协议基础

苹果ios9更新了什么内容

iphone iPhone 5s iPhone 6 iphone刷机
苹果ios9更新了什么内容

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

《阿尔法协议》视频流程攻略9

电脑网络
《阿尔法协议》视频流程攻略9

ios9 bug隐藏无用应用方法

iphone iPhone 5s iPhone 6 iphone刷机
ios9 bug隐藏无用应用方法

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

IOS改变UISearchBar中搜索框的高度

IOS改变UISearchBar中搜索框的高度

建立良好体验度的Web注册系统ajax

建立良好体验度的Web注册系统ajax
下拉加载更多内容 ↓