iOS GET/POST请求

简介: GET请求// GET请求- (void)get { NSString *name = @"张三"; NSString *pwd = @"zhang"; NSString *strUrl = [NSString stringWithFormat:@"http://127.

GET请求


// GET请求
- (void)get {
    NSString *name = @"张三";
    NSString *pwd = @"zhang";
    NSString *strUrl = [NSString stringWithFormat:@"http://127.0.0.1/php/login.php?username=%@&password=%@", name, pwd];
    
    // 对汉字进行转义
    strUrl = [strUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
    NSLog(@"%@", strUrl);
    NSURL *url = [NSURL URLWithString:strUrl];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:
     ^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
         if (connectionError) {
             NSLog(@"连接错误 %@", connectionError);
             return;
         }
         NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
         if (httpResponse.statusCode == 200 || httpResponse.statusCode == 304) {
             // 解析数据
             NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
             NSLog(@"%@", dict);
         } else {
             NSLog(@"服务器内部错误");
         }
     }];
}

打印结果:


img_6efb76fc68706f950d6823632b9a9ed2.png
GET.png

POST请求


// POST请求
- (void)post {
    NSString *name = @"zhangsan";
    NSString *pwd = @"zhang";
    NSString *str = [NSString stringWithFormat:@"username=%@&password=%@", name, pwd];
    
    NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/php/login.php"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    // 设置请你去方法
    request.HTTPMethod = @"post";
    // 设置请求体
    request.HTTPBody = [str dataUsingEncoding:NSUTF8StringEncoding];
    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:
     ^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {
         if (connectionError) {
             NSLog(@"连接错误 %@", connectionError);
             return;
         }
         NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
         if (httpResponse.statusCode == 200 || httpResponse.statusCode == 304) {
             // 解析数据
             NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
             NSLog(@"%@", dict);
         } else {
             NSLog(@"服务器内部错误");
         }
     }];
}

打印结果:


img_98a7ea4eb8de37961ee2d4548030b8da.png
POST.png
目录
相关文章
|
7月前
|
存储 移动开发 JavaScript
【原生】sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
【原生】sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)
|
iOS开发
iOS开发 GET、POST请求方法:NSURLSession篇
iOS开发 GET、POST请求方法:NSURLSession篇
103 0
|
网络协议 前端开发 数据安全/隐私保护
iOS拦截http请求 ( 为小白用户定制的精简版本)
iOS拦截http请求 ( 为小白用户定制的精简版本)
775 0
iOS拦截http请求 ( 为小白用户定制的精简版本)
|
存储 iOS开发
iOS小技能: get 和post 布尔值参数处理、按照时间分页的数据重复的处理
1. get 和post 布尔值参数处理:如果后台Bool 参数没有同时支持【 0,1】 ;和【 true false】,get请求的时候就需要特殊处理。 2. 按照时间分页的数据重复的处理
177 0
iOS小技能: get 和post 布尔值参数处理、按照时间分页的数据重复的处理
|
Swift
iOS12 切换到后台请求丢失的问题
iOS12版本后,AFNetworking请求过程中,app返回后台,会出现以下错误,并且网络请求中断(只在真机中出现,模拟器不会复现)
226 0
|
API iOS开发
iOS多个线程发起相同请求,避免重复
有时候在调用多个模块时,会对同一个API进行多次请求,但因为内容都是一样的,所以最好就是加上锁,防止重复请求造成网络资源浪费
206 0
|
iOS开发
iOS - 重写set和get方法后,为什么使用时会发生无效?解析命名规范
iOS - 重写set和get方法后,为什么使用时会发生无效?解析命名规范
437 0
|
缓存 安全 前端开发
iOS小技能:请求安全防护
银行和信用卡类app 为了安全,防止修改和抓包都是基本的要求。
253 0
|
存储 iOS开发
iOS网络请求小知识: get 和post 布尔值参数处理
iOS网络请求小知识: get 和post 布尔值参数处理
904 0
iOS网络请求小知识: get 和post 布尔值参数处理