iOS 发送GET和POST网络请求

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.URL
NSURL *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 --> NSData
request.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uni-app是一个跨平台的开发框架,可以同时开发iOS、Android和Web应用。在uni-app中,可以使用uni.request方法进行网络请求。 uni.request方法是封装了原生的XMLHttpRequest和fetch方法,可以发送HTTP请求并获取响应数据。它支持GET、POST等常见的请求方式,并且可以设置请求头、请求参数等。 使用uni.request方法发送网络请求的基本步骤如下: 1. 引入uni.request方法:在需要发送网络请求的页面或组件中,使用import语句引入uni.request方法。 2. 调用uni.request方法:使用uni.request方法发送网络请求,传入请求的URL、请求参数、请求头等信息。 3. 处理响应数据:在uni.request方法的回调函数中,可以获取到服务器返回的响应数据,并进行相应的处理。 以下是一个示例代码,演示了如何使用uni.request方法发送GET请求: ``` import uniRequest from '@/common/request.js'; uniRequest({ url: 'https://api.example.com/users', method: 'GET', success: (res) => { console.log(res.data); }, fail: (err) => { console.log(err); } }); ``` 在上述代码中,我们首先引入了一个名为uniRequest的封装方法,该方法封装了uni.request方法。然后,我们调用uniRequest方法发送了一个GET请求,并在成功回调函数中打印了服务器返回的数据。 需要注意的是,uni.request方法是异步的,所以我们需要通过回调函数来处理响应数据。在回调函数中,可以根据服务器返回的状态码、响应数据等进行相应的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值