iOS——POST请求

GET和POST

GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

  • GET使用URL或者Cookie传参,而POST将数据放入BODY中。
  • GET的URL会有长度上的限制,而POST的数据则可以非常大
  • POST比GET安全,因为数据在地址栏上不可见
    GET的代码之前学习网络请求的时候写过了,这里直接来写下POST的代码:
- (void)postRequestWithURL:(NSString *)urlStr withZhangHaoString:(nonnull NSString *)zhangHaoString withYanZhengMaString:(nonnull NSString *)yanZhengMaString  {
    //创建一个URL对象
    NSURL *url = [NSURL URLWithString:@"https://eoikf00fjrs25ee.m.pipedream.net"];
    //创建请求对象,传入三个参数:第一个参数是URL对象,第二个参数是你的缓存策略,第三个参数是设置请求时间
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    //设置请求方式为POST
    [request setHTTPMethod:@"POST"];
    //设置请求头信息:传入两个参数,第一个参数是头字段值,第二个参数是头字段名
    //头字段值有三种,按需使用:1、application/x-www-form-urlencoded(当后台接收为分开的参数的时候,如?name=liyu&password=123);2、application/json(后台接收为json对象时);3、multipart/form-data(上传文件时)
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    //设置请求体
    NSString *param = [NSString stringWithFormat:@"username=%@&pwd=%@", zhangHaoString, yanZhengMaString];
    //把拼接后的字符串转换为data,设置请求体(data就是请求体)
    request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];
    //建立会话session支持三种类型的任务:1、NSURLSessionDataTask:加载数据;2、NSURLSessionDownloadTask:下载数据;3、NSURLSessionUploadTask:上传数据;
    NSURLSession *session = [NSURLSession sharedSession];
    //创建请求任务
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        if (error) {
            NSLog(@"ERROR");
        } else {
            NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
        }
    }];
    //启动任务
    [dataTask resume];
}

这里我使用的url是一个模拟后端的网站提供的URL,网站名:RequestBin,谷歌搜就行。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值