iOS 发送GET和POST网络请求

来源:互联网 发布:滇虹药业淘宝旗舰店 编辑:程序博客网 时间:2024/04/26 01:58

HTTP的通信过程
1.请求
1> 请求行 : 请求方法、请求路径、HTTP协议的版本
GET /MJServer/resources/images/1.jpg HTTP/1.1

2> 请求头 : 客户端的一些描述信息
* User-Agent : 客户端的环境(软件环境)

3> 请求体 : POST请求才有这个东西,GET请求的参数都会拼接在请求行里
* 请求参数,发给服务器的数据


响应

1> 状态行(响应行): HTTP协议的版本、响应状态码、响应状态描述
HTTP/1.1 200 OK

2> 响应头:服务器的一些描述信息
* Content-Type : 服务器返回给客户端的内容类型
* Content-Length : 服务器返回给客户端的内容的长度(比如文件的大小)

3> 实体内容(响应体)
* 服务器返回给客户端具体的数据,比如文件数据


HTTP的请求方法
一.GET
1> 特点
* 所有请求参数都拼接在url后面

2> 缺点
* 在url中暴露了所有的请求数据,不太安全
* url的长度有限制,不能发送太多的参数

3> 使用场合
* 如果仅仅是向服务器索要数据,一般用GET请求

4> 如何发送一个GET请求
* 默认就是GET请求

// 1.URLNSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];// 2.请求NSURLRequest *request = [NSURLRequest requestWithURL:url];// 3.发送请求[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {}];

二.POST
1> 特点
* 把所有请求参数放在请求体(HTTPBody)中
* 理论上讲,发给服务器的数据的大小是没有限制

2> 使用场合
* 除开向服务器索要数据以外的请求,都可以用POST请求
* 如果发给服务器的数据是一些隐私、敏感的数据,绝对要用POST请求

3> 如何发送一个POST请求

// 1.创建一个URL : 请求路径NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/login"];// 2.创建一个请求NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];// 设置请求方法request.HTTPMethod = @"POST";// 设置请求体 : 请求参数NSString *param = [NSString stringWithFormat:@"username=%@&pwd=%@", usernameText, pwdText];// NSString --> NSDatarequest.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];

三.NSMutableURLRequest的常用方法
1.设置超时

request.timeoutInterval = 5;// NSURLRequest是不能设置超时的,因为这个对象是不可变的

四.URL转码
1.URL中不能包含中文,得对中文进行转码(加上一堆的%)

NSString *urlStr = [NSString stringWithFormat:@"http://localhost/login?username=喝喝&pwd=123"];urlStr = [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];// urlStr == @"http://localhost/login?username=%E5%96%9D%E5%96%9D&pwd=123"

五.数据安全

在访问网络时,传输一些隐私数据不可通过明文传输,例如密码,银行等信息,加密算法根据公司规定协商

通常可使用MD5加密,MD5为不可逆算法,较不容易破解

加盐: 指在原密码上进行修改, 添加, 或位置移动等方式进行混淆后再加密提交至服务器, 安全系数交高



0 0
原创粉丝点击