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

 更新时间:2016年01月08日 13:33:43   投稿:mrr  
这篇文章主要介绍了iOS9苹果将原http协议改成了https协议的方法的相关资料,需要的朋友可以参考下

解决方法:

在info.plist 加入key

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>

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

最近做个项目,开始采用的是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
{ 
} 

相关文章

  • iOS 实现类似抖音滚动效果

    iOS 实现类似抖音滚动效果

    这篇文章主要介绍了iOS 实现类似抖音滚动效果,整体思路是我们将tableView 的contentinset设置为上面一个屏幕的高度,下面一个屏幕的高度,左右为0,这样保证我们滚动过去的时候
    都是准备好的内容,需要的朋友可以参考下
    2024-06-06
  • IOS数字键盘左下角添加完成按钮的实现方法

    IOS数字键盘左下角添加完成按钮的实现方法

    这篇文章主要介绍了IOS数字键盘左下角添加完成按钮的实现方法的相关资料,希望通过本文能实现类似这样的功能,需要的朋友可以参考下
    2017-08-08
  • iOS开发之UIMenuController使用示例详解

    iOS开发之UIMenuController使用示例详解

    这篇文章主要为大家介绍了iOS开发之UIMenuController使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • 详解iOS App开发中UIViewController的loadView方法使用

    详解iOS App开发中UIViewController的loadView方法使用

    这篇文章主要介绍了详解iOS App开发中UIViewController的loadView方法使用,讲解了访问view属性时loadView方法的调用及使用loadView时的一些注意点,需要的朋友可以参考下
    2016-03-03
  • iOS scrollview实现三屏复用循环广告

    iOS scrollview实现三屏复用循环广告

    这篇文章主要介绍了iOS scrollview实现三屏复用循环广告,从服务器请求的广告,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • iOS中利用inputView 弹出 picker

    iOS中利用inputView 弹出 picker

    这篇文章主要介绍了iOS中利用inputView 弹出 picker的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • IOS用AFN发送字符串形式的Json数据给服务器实例

    IOS用AFN发送字符串形式的Json数据给服务器实例

    本篇文章主要介绍了IOS用AFN发送字符串形式的Json数据给服务器实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • iOS指纹识别的简单应用

    iOS指纹识别的简单应用

    这篇文章主要为大家详细介绍了iOS指纹识别的简单应用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-07-07
  • IOS实现左右两个TableView联动效果

    IOS实现左右两个TableView联动效果

    在我们日常开发IOS中,经常见到两个tableview的联动,滑动一侧tableview,另一侧tableview跟着滑动,其实实现起来比较简单,只是需要搞清楚他们之间的区别和联系,下面一起来看看如何实现。
    2016-08-08
  • iOS 多选删除功能附tableViewTips及单选删除

    iOS 多选删除功能附tableViewTips及单选删除

    这次分享并记录一下tableView的多选删除,并额外记录一下单选删除及tableView的设置小技巧。代码简单易懂,需要的朋友参考下吧
    2017-05-05

最新评论