NSURLSession(一)GET请求

//GET请求, 也可以给服务器发送信息, 也有参数(微博用户名,用户id)

//1.构造URL, 参数直接拼接在url连接后

NSURL *url = [NSURL URLWithString:@"http://news-at.zhihu.com/api/3/news/4602734"];

//2.构造Request

//把get请求的请求头保存在request里

//NSURLRequest *request = [NSURLRequest requestWithURL:url];

// 参数

// (1)url

// (2)缓存策略

// (3)超时的时间, 经过120秒之后就放弃这次请求

//NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:120];

//NSURLRequest 不可变,不能动态的添加请求头信息

//可变的对象

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

//(1)设置请求方式

[request setHTTPMethod:@"GET"];

//(2)超时时间

[request setTimeoutInterval:120];

//(3)缓存策略

[request setCachePolicy:NSURLRequestReturnCacheDataElseLoad];

//(4)设置请求头其他内容

//[request setValue:<#(NSString *)#> forHTTPHeaderField:<#(NSString *)#>];

//[request addValue:<#(NSString *)#> forHTTPHeaderField:<#(NSString *)#>];

//[request setAllHTTPHeaderFields:<#(NSDictionary *)#>];

[request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];   //告诉服务,返回的数据需要压缩

//3.构造Session

NSURLSession *session = [NSURLSession sharedSession];

//4.构造要执行的任务task

/**

*  task

*

*  @param data     返回的数据

*  @param response 响应头

*  @param error    错误信息

*

*/

NSURLSessionDataTask *task = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {

if (error == nil) {

/*

NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"data: %@", dataStr);

*/

//json --> data

//NSJSONSerialization *jsonData = [NSJSONSerialization dataWithJSONObject:<#(id)#> options:<#(NSJSONWritingOptions)#> error:<#(NSError *__autoreleasing *)#>]

/*

options:

1.读取reading

NSJSONReadingMutableContainers     生成可变的对象,不设置这个option,默认是创建不可变对象

NSJSONReadingMutableLeaves     生成可变的字符串MutableString(iOS7+有bug)

NSJSONReadingAllowFragments    允许json数据最外层不是字典或者数组

2.写入writing

NSJSONWritingPrettyPrinted     生成json数据是格式化的,有换行,可读性高

*/

//data --> json

NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"data: %@", dataStr);

}

}];

//5.

[task resume];

时间: 2024-08-01 06:45:44

NSURLSession(一)GET请求的相关文章

NSURLSession(二)POST请求

//1.构造URL NSURL *url = [NSURL URLWithString:@"https://api.weibo.com/2/statuses/update.json"]; //2.构造Request NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; //(1)设置为POST请求 [request setHTTPMethod:@"POST"]; //(2)超

NSURLSession(三)POST请求—&gt;上传图片

这个例子,还是以新浪微博为例. 首先在宏定义出POST请求头的一个属性:请求体边界,它是干什么用的呢,先别急,往下看 #define boundary @"AaB03x" //设置边界 参数可以随便设置 //1.构建URL NSURL *url=[NSURL URLWithString:@"https://api.weibo.com/2/statuses/upload.json"]; //2.创建request请求 //NSURLRequest *request=[

iOS NSURLSession 实现网络请求-文件下载-上传-后台下载

*  会话NSURLSession NSURLConnection通过全局状态来管理cookies, 认证信息等公共资源, 如果两个连接需要使用不同的资源配置情况时就无法解决, 这个问题在NSURLSession可以解决, NSURLSession同时对应着多个连接, 会话通过工厂方法来创建, 同一个会话中使用相同的状态信息, NSURLSession支持进程三种会话: 1. defaultSessionConfiguration : 进程内会话 (默认会话), 用来硬盘来缓存数据. 2. ep

Xcode7 使用NSURLSession发送HTTP请求的问题

错误描述: 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. 在iOS9 中,苹果将原http协议改成了https协议,使用 TLS1.2 SSL加密请求数据. 解决方法: 在info.plist 加入key <

Xcode7 使用NSURLSession发送HTTP请求报错

控制台打印:Application 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. 解决办法:在info.plist中添加 <key>NSAppTransportSecurity</key><dic

Xcode7 使用NSURLSession发送HTTP请求报错[转]

控制台打印:Application 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. 解决办法:修改info.plist文件

Xcode7.3 使用NSURLSession发送HTTP请求报错

控制台打印:Application 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. 解决办法:修改info.plist文件

iOS开发网络篇—发送GET和POST请求(使用NSURLSession)

iOS开发网络篇—发送GET和POST请求(使用NSURLSession) 说明: 1)该文主要介绍如何使用NSURLSession来发送GET请求和POST请求 2)本文将不再讲解NSURLConnection的使用,如有需要了解NSURLConnection如何发送请求. 详细信息,请参考:http://www.cnblogs.com/wendingding/p/3813706.html 3)本文示例代码发送的请求均为http请求,已经对info.plist文件进行配置. 如何配置,请参考:

网络编程(一) 利用NSURLSession发送GET POST请求

Xcode 7.0后,http链接不能直接访问(https可以),需要在Info.plist增加下面一项才能正确访问. 使用NSURLSession进行网络请求的流程: 1.构造NSURL 2.构造NSURLRequest请求对象 3.构造NSURLSession会话对象 4.创建网络请求任务:dataTask, downloadTask, uploadTask 5.发送网络请求 1.GET 请求(GET一般用于获取/查询资源信息) - (void)HTTPGET { //1.构造NSURL N