网络编程之HTTP
2015-12-09 17:30
561 查看
还需添加内容
对于IOS 9.0以前的版本的写法:
urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
新版写法:
urlStr = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
//通过响应头中的Content-Length取得整个响应的总长度
NSHTTPURLResponse httpResponse = (NSHTTPURLResponse )response;
NSDictionary *HeaderFields = [httpResponse allHeaderFields];
}
#pragma mark 接受响应数据
}
#pragma mark 数据接收完成
NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)lastObject];
NSLog(@”%@”,path);
path = [path stringByAppendingPathComponent:@”下载图片01.jpg”];
[_data writeToFile:path atomically:YES];
}
#pragma mark 请求失败
NSLog(@”%@”,error.localizedDescription);
}
需对Info.plist中添加一个字典
苹果安全问题
Xcode7.0不含7.0以上的版本添加:
Xcode7.0以前的版本
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以前的版本
相关文章推荐
- apache+openssl设置https单向认证和双向认证以及反向代理
- u-boot网络固件还原功能
- TCP/IP详解卷1 读书笔记:第二十一章 TCP超时与重传
- 每个程序员都该知道的网络同步知识
- 【计算机网络复习】:链路层
- 网络层访问权限控制技术-ACL详解
- 树莓派python,tornado,返回json数据代码,初级网络编程。
- [Servlet&JSP] HttpServletResponse的使用
- Block类型变量 - 缓存Http请求与回调
- java运用HttpClient 调用http post 包含header调用
- 详解基本TCP套接字函数
- jmeter之http请求-文件上传脚本编写
- java http调用方式get post 包含带header
- http://cssload.net/----动画
- Java——常见的HTTP状态码:
- Volley的初级使用(从网络下载图片)
- 用httpPost对JSON发送和接收的例子
- memcached 网络模型 --转载处:
- 质问微软 WP8.1开发HTTPS 真费劲
- UVA-10779 Collectors Problem (网络流建模)