iOS 网络与多线程--4.同步Post方式的网络请求

时间:2023-03-09 02:07:23
iOS 网络与多线程--4.同步Post方式的网络请求

通过Post请求方式,同步获取网络数据,一旦发送同步请求,程序将停止用户交互,直至服务器返回数据

在ViewController.m文件内的viewDidLoad函数添加一下测试代码

 - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib. // 1.建立一个网址对象,指定请求数据的网址
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
// 2.再通过网址创建网络请求对象.
// 参数1:请求访问路径
// 参数2:缓存协议
// 参数3:网络请求超时时间
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:];
// 3.设置网络通讯方式为Post,默认为Get
[request setHTTPMethod:@"POST"];
// 4.设置网络请求的参数
NSString *str = @"type=focus-c";
// 5.将请求参数,转换为二进制数据
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPBody:data];
// 6.使用网络连接对象实现网络通讯,网络连接对象创建成功后,就创建了一个网络连接。
NSData *received = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
// 7.将返回的数据转换成字符串并输出
NSString *str1 = [[NSString alloc] initWithData:received encoding:NSUTF8StringEncoding];
NSLog(@">>>>>>>%@",str1);
}

执行之后就可以根据指定网址获取数据了。