- HTTP使用场景
打开网页
app上登录
下载图片
HTTP作用
http是用来实现客户端与服务器之间进行信息通信的协议
URL决定和哪台服务器通信
URL格式
协议http:// 主机名 www.imooc.com资源路径(借口名称/courese_list 查询条件(接口字段)name=IOS&cid=23146(?key1=value1&key1=value1)
只有get请求才将请求参数拼接到url后面
常见请求方法
- get 从服务器获取一段内容通常不包含请求体(登录)
- post 使用客户端提供的信息更新实体
- head
- put 使用客户端提供的数据添加实体
- delete
IOS中网络请求相关文件
NSURL 标示客户端访问那台服务器上的指定资源
NSURLRequest 标示客户端发起的网络请求内容
NSURLConnection 表示客户端与服务器之间建立的网络连接
NSURLResponse 表示服务端基于客户端的响应结果
应用
发送网络请求
在联网状态下运行
//表示访问的服务器
NSURL *url=[NSURL URLWIthString :"www.imooc.com"];
//表示客户端发起的网络请求的请求内容 初始化请求内容
NSURLRequest *request=[NSURLRequest requestWithURL:url];
//创建客户端与服务器之间的网络连接
NSURLConnection*connection=[[NSURLConnection alloc]init WithRequest:request delegate:self];
//启动网络请求
[connnection start]
//接收服务端对客户端的响应结果
-(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response
{
NSLog(@"@",response);
}
AppTransport Security(ATS IOS9)
强制使用HTTPS 提升安全级别
获取网络数据
- 布局页面
view文件下
.h
@interface KeyValueView:UIView
@property(nonatomic,strong)UILabel *keyValue;
@property(nonatomic,strong)UILabel*valueLabel;
@end
.m
@implementation KeyValueView
-(id)initWithFrame:(CGRect)frame
{
self=[super initWithFrame:frame];
if(self)
{
_keyLabel=[[UILabel alloc]initWithFrame:CGRextMake(0,0,CGRectGetWidth(self.frame)/3,CGRectGetHeight(self.frame))];
_keyLabel.backgroundColor=[UIColor clearColor];
_keyLabel.textAlignment=NSTextAlignmentLeft;
_keyLabel.font=[UIFont systemFontOfSize:16];
_keyLabel.textColor=[UIColor blackColor];
[self addSubView:_keyLabel];
_ValueLabel=[[UILabel alloc]initWithFrame:CGRextMake(CGRectGetWidth(self.frame)/3,0,2*CGRectGetWidth(self.frame)/3,CGRectGetHeight(self.frame))];
_valueLabel.backgroundColor=[UIColor clearColor];
_valueLabel.textAlignment=NSTextAlignmentLeft;
_valueLabel.font=[UIFont systemFontOfSize:16];
_valueLabel.textColor=[UIColor blackColor];
[self addSubView:_valueLabel];
}
}
-(void)setupKey:(NSString*)key value:(NSString *)value
{
[_keyLabel setText:key];
[_valueLabel setText:value];
}
- 发起网络请求 获取个人信息
//指明服务器访问地址 http://hostName:port/absoltuePath/query ?key=value&key2=value2
NSURL*url =[NSURL URLWithString:@"http:// "];
//创建请求对象 默认请求方式get
NSURLRequest *request=[NSURLRequest requestWithURL:url];
设置其他请求方式
NSMutableURLRequest*request=[NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod];
//创建网络连接对象
NSURLConnection*connection=[[NSURLConnection alloc]initWIthRequest:request delegate:self] ;
//启动网络连接
[connection start];
网络请求响应结果
-(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLReponse*)reponse
{
NSLog(@"%@",reponse);
}
接收网络响应数据 多次调用
-(void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data
{
NSLog(@"%@",data);
}
-(void)connectionDidFinishingLoading:(NSURLConnection*)connection
{
NSLog(@"网络请求结束");
}
- 解析网络响应数据 展示到页面上