还需添加内容
HTTP — 超文本传输协议。所有的WWW文件都必须遵守这个标准.
客户端发送请求,服务器响应请求。
客户端向服务器发送一个请求,请求头包含请求的方法、URL、协议版本、以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本,成功或者错误编码加上包含服务器信息、实体元信息以及可能的实体内容。
使用代理方法
发送数据请求时:
对于URL中的中文是无法解析的,需要进行URL编码
1.URL编码:
NSString *urlStr = @”测试URL”;
对于IOS 9.0以前的版本的写法:
urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
新版写法:
urlStr = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
2.创建URL链接
NSURL *url = [NSURL URLWithString:urlStr];
3.创建请求request
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15.0f];//超时默认60秒
4.创建连接,发送请求 !新版苹果官方不允许使用connection来创建连接!
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
5.启动连接
[connection start];
响应请求,使用代理方法NSURLConnectionDataDelegate
#pragma mark 开始响应
-(void)connection:(NSURLConnection )connection didReceiveResponse:(NSURLResponse )response{
//处理响应
//通过响应头中的Content-Length取得整个响应的总长度
NSHTTPURLResponse httpResponse = (NSHTTPURLResponse )response;
NSDictionary *HeaderFields = [httpResponse allHeaderFields];
}
#pragma mark 接受响应数据
-(void)connection:(NSURLConnection )connection didReceiveData:(NSData )data{
[_data appendData:data];
}
#pragma mark 数据接收完成
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
//数据接收完保存文件(注意苹果官方要求:下载数据只能保存到缓存目录)
NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
NSLog(@”%@”,path);
path = [path stringByAppendingPathComponent:@”下载图片01.jpg”];
[_data writeToFile:path atomically:YES];
}
#pragma mark 请求失败
-(void)connection:(NSURLConnection )connection didFailWithError:(NSError )error{
//输出错误中最重要的错误信息
NSLog(@”%@”,error.localizedDescription);
}
需对Info.plist中添加一个字典
苹果安全问题
Xcode7.0不含7.0以上的版本添加:
Xcode7.0以前的版本