Mac/ios 网络编程 实战

本文详细介绍了Mac和iOS设备上的网络编程,包括同步和异步请求的区别,以及GET和POST请求的主要特点。同步请求会阻塞主线程,而异步请求在后台线程执行,允许监听进度。GET请求参数可见且有长度限制,POST请求则更安全,参数隐藏在请求体中。示例涵盖了使用NSURLConnection进行同步和异步POST请求的实现。
摘要由CSDN通过智能技术生成

访问网络的方式

同步请求:数据的请求在主线程来执行,一旦发送同步请求,程序将停止用户交户,直至服务器返回数据完成,才可以进行下一步操作,而网络数据加载需要一个时间过程,这样的话就会阻塞主线程。

异步请求:数据的请求过程在多线程执行。

其他区别:同步请求无法取消,异步请求过程中可以奇效,同步请假无法监听加载进度,异步可以监听

主要区别方式:

GET请求:将参数直接写在访问路径上,操作简单,但是容易被外界看到,安全性不高,而且有长度限制,地址最多255字节

POST请求:将参数放到body里面。POST请求操作相对复杂,需要将参数和地址分开,不过安全性高,参数放在body里面不容易被捕获

基本流程:

构造NSURL实例(将需要请求的数据的网址字符串转化成NSURL对象)

生成NSURLRequest请求(一般用NSMutableURLRequest)

通过NSURLConnection发送请求

通过返回NSURLResponse实例和NSError实例分析结果

接受返回数据

    // 初始化URL实例
    NSURL * url = [NSURL URLWithString:@"http://www.baidu.com:8080/search?id=1"];
    // http
    NSLog(@"Scheme:%@",[url scheme]);
    // www.baidu.com
    NSLog(@"Host:%@",[url host]);
    // 端口8080
    NSLog(@"Port:%@",[url port]);
    // http://www.baidu.com:8080/search?id=1
    NSLog(@"absoluteString:%@",[url absoluteString]);
    // /search
    NSLog(@"relativePath:%@",[url relativePath]);
    // /search
    NSLog(@"Path:%@",[url path]);
    // ("/",search )
    NSLog(@"pathComponents:%@",[url pathComponents]);
    // id=1
    NSLog(@"Query:%@",[url query]);

@NSURLRequest 包装了网络请求的信息
    NSURL * url = [NSURL URLWithString:urlString];
    // 设置后不能改变
    NSURLRequest * request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值