ios网络解析

来源:互联网 发布:远程桌面端口号是多少 编辑:程序博客网 时间:2024/05/20 05:10

ios网络解析

HTTP是用来实现客户端与服务器之间进行信息通信的协议

URL决定于谁通信

http://www.imooc.com/course-list?name=ios&cid=231412 

协议   主机名               路径(接口名称) 查询条件

http://  hostname:port/ absoltuePath ?key=value&key2=value2

ios网络请求一般使用http中的GET和POST,通常需要使用到几个类:NSURL、NSURLRequst、NSURLConnection

get:从服务端获取一段内容,通常不包含请求体
post:使用客服端提供的数据更新到服务器实体
NSURL:请求地址指定客户端访问哪里的数据资源
NSURLRequst:封装一个请求,保存发给服务器的全部数据,包括一个NSURL对象,请求方法、请求头、请求体....,标识客户端发起的网络请求内容
NSMutableURLRequest:NSURLRequest的子类
NSURLConnection:负责发送请求,建立客户端和服务器的连接。发送NSURLRequest的数据给服务器,并收集来自服务器的响应数据,表示与客户端建立的网络连接
NSURLResponse:表示结果

NSURLConnection的使用
1.简单说明

使用NSURLConnection发送请求的步骤很简单

(1)创建一个NSURL对象,设置请求路径(设置请求路径)

(2)传入NSURL创建一个NSURLRequest对象,设置请求头和请求体(创建请求对象)

(3)使用NSURLConnection发送NSURLRequest(发送请求)

1)发送请求的三个步骤:
1.设置请求路径
2.创建请求对象
3.发送请求
3.1发送同步请求(一直在等待服务器返回数据,这行代码会卡住,如果服务器,没有返回数据,那么在主线程UI会卡住不能继续执行操作)有返回值
3.2发送异步请求:没有返回值
说明:任何NSURLRequest默认都是get请求。
 
(2)发送同步请求代码示例:

发起一个网络请求

[objc] view plain copy 在CODE上查看代码片派生到我的代码片

        @interface AppDelegate ()<NSURLConnectionDataDelegate,NSURLConnectionDelegate>            @end            @implementation AppDelegate                  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {          // Override point for customization after application launch.          //指定访问的网络地址          NSURL *url = [NSURL URLWithString:@"https://www.imooc.com"];        //表示客户端发起的网络请求内容          NSURLRequest *requst = [NSURLRequest requestWithURL:url];                    NSURLConnection *connection =[[NSURLConnection alloc]initWithRequest:requst delegate:self];          //启动网络请求          [connection start];                    return YES;      }            -(void)connection:(NSURLConnection *)connection didReceiveResponse:(nonnull NSURLResponse *)response      {          NSLog(@"%@",response); //此处接收到到是服务器返回到数据      }      }  

此时运行,在控制台打印出的信息:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.(大概的意思就是应用程序安全运输了明文HTTP协议(http:/ /)资源负载是不安全的。暂时的异常可以通过您的应用程序的Info.plist文件配置。)

这是因为ios9新增了ATS特性,强制使用https安全协议。

解决此问题需要在info.plist中新增如下操作:

当status code打印200  表示网络请求成功

0 0
原创粉丝点击