您当前的位置: 首页 >  网络

white camel

暂无认证

  • 2浏览

    0关注

    442博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

iOS开发网络篇 一一 NSURLConnection发送POST请求

white camel 发布时间:2017-12-17 11:23:11 ,浏览量:2

 1. GET和POST的主要区别表现在数据传递上

 

 GET

 在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如

 http://ww.test.com/login?username=123&pwd=234&type=JSON

 由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB

 

 POST

 发给服务器的参数全部放在请求体中

 理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)

 

 2. GET 和 POST的选择

 

 选择GET和POST的建议

 如果要传递大量数据,比如文件上传,只能用POST请求

 GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST

 如果仅仅是索取数据(数据查询),建议使用GET

 如果是增加、修改、删除数据,建议使用POST

发送POST请求步骤

a.确定URL路径

b.创建请求对象(可变对象)NSMutableURLRequest

c.修改请求对象的方法为POST,设置请求体(Data)

d.发送一个异步请求

e.补充:设置请求超时,处理错误信息,设置请求头(如获取客户端的版本等等,请求头是可设置可不设置的)

//
//  ViewController.m
//  02掌握-NSURLConnection发送POST请求
//
//  Created by 朝阳 on 2017/12/2.
//  Copyright © 2017年 sunny. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController
/*
 1. GET和POST的主要区别表现在数据传递上
 
 GET
 在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如
 http://ww.test.com/login?username=123&pwd=234&type=JSON
 由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB
 
 POST
 发给服务器的参数全部放在请求体中
 理论上,POST传递的数据量没有限制(具体还得看服务器的处理能力)
 
 2. GET 和 POST的选择
 
 选择GET和POST的建议
 如果要传递大量数据,比如文件上传,只能用POST请求
 GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST
 如果仅仅是索取数据(数据查询),建议使用GET
 如果是增加、修改、删除数据,建议使用POST


 */

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    //1. 确定请求路径
    NSURL *url = [NSURL URLWithString:@"http://120.25.226.186:32812/login"];
    //2. 创建可变请求对象(NSURLRequest不可变请求对象内部:有默认的SET请求方法和SET请求头)
    NSMutableURLRequest *requestM = [NSMutableURLRequest requestWithURL:url];
    //3. 修改请求方法,POST必须大写
    requestM.HTTPMethod = @"POST";
    
    // 设置属性: 请求超时(当请求服务器超过10s,就算请求失败!)
    requestM.timeoutInterval = 1.0;
    
    // 设置属性: 请求头内容
    [requestM setValue:@"ZY" forHTTPHeaderField:@"User-Agent"];
    
    //4. 设置请求体信息,字符串--->NSData
    requestM.HTTPBody = [@"username=520it&pwd=520it&type=JSON" dataUsingEncoding:NSUTF8StringEncoding];
    //5. 发送请求
    [NSURLConnection sendAsynchronousRequest:requestM queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
       
        //6. 解析数据,NSData--->NSString
        // 打印响应体
        NSLog(@"%@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
        
    }];
}


@end
注意:

发送POST请求. 需要使用

 可变请求对象

修改请求方法为POST 

设置请求头内容

设置请求体信息

关注
打赏
1661428283
查看更多评论
立即登录/注册

微信扫码登录

0.0456s