• AFNetworking GET和POST请求


    GET请求

    代码展示:

    在storyBoard中每个请求关联一个Button

     1 #pragma mark - get请求
     2 - (IBAction)getRequest:(id)sender {
     3     // 参数1:GET 请求的网址
     4     // 参数2:拼接(body)
     5     // 参数3:下载进度  downloadProgress
     6     // 参数4:请求成功  responseObject:数据信息
     7     // 参数5:请求失败  error错误信息
     8     
     9     [self.session GET:@"http://api.yhouse.com/m/city/dynmiclist" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
    10         NSLog(@"下载进度");
    11     } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    12         NSLog(@"请求成功%@", responseObject);
    13     } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    14         NSLog(@"请求失败");
    15     }];
    16 }

    POST请求第一种

    代码展示:

    // 网络请求的头文件
    #import <AFNetworking.h>
    
    @interface ViewController ()
    // 通过AFHTTPSessionManager创建单例
    @property (nonatomic,strong) AFHTTPSessionManager *session;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        // 初始化session对象
        self.session = [AFHTTPSessionManager manager];
        // 设置请求接口回来时支持什么类型的数组
        self.session.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"application/x-json",@"text/html", nil];
        
        // Do any additional setup after loading the view, typically from a nib.
    }

    实现请求操作:

     1 #pragma mark - post请求
     2 - (IBAction)postRequest:(id)sender {
     3     /*{
     4      // body
     5      do = "pri_memberlist";
     6      "member_id" = zpHr2dsRvQQxYJxo2;
     7      "workspace_id" = ILfYpE4Dhs2gWcuQx;
     8      
     9      // url
    10      http://m.taskwedo.com/API/wedo1/wedo.php
    11      }*/
    12     
    13     // 参数1:POST 请求的网址
    14     // 参数2:拼接(body)
    15     // 参数3:下载进度  downloadProgress
    16     // 参数4:请求成功  responseObject:数据信息
    17     // 参数5:请求失败  error错误信息
    18     
    19     // 设置URL
    20     NSString *url = @"http://m.taskwedo.com/API/wedo1/wedo.php";
    21     // 创建body
    22     NSMutableDictionary *dic = [NSMutableDictionary dictionary];
    23     [dic setValue:@"pri_memberlist" forKey:@"do"];
    24     [dic setValue:@"zpHr2dsRvQQxYJxo2" forKey:@"member_id"];
    25     [dic setValue:@"ILfYpE4Dhs2gWcuQx" forKey:@"workspace_id"];
    26     // 调用方法
    27     [self.session POST:url parameters:dic progress:^(NSProgress * _Nonnull uploadProgress) {
    28         NSLog(@"上传进度");
    29     } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    30         NSLog(@"post请求成功%@", responseObject);
    31     } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    32         NSLog(@"请求失败");
    33     }];
    34 }

    POST请求第二种

    代码展示:

     1 #pragma mark - post请求 body中包含汉字
     2 - (IBAction)anotherPostRequest:(id)sender {
     3     
     4     // body体:
     5     /*
     6      address = "";
     7            comment = "U7c7bU6a21U5757U8ba1U5212U7528U5230U7b2cU4e09U90e8U5206U4e2dUff0cU5f85U63d0U95eeU3001U56deU7b54U79efU7d2fU5230U4e00U5b9aU6570U91cfU65f6Uff0cU4fbfU4e8eU5927U5bb6U7684U95eeU9898U7684U5febU901fU67e5U627eUff0cU6240U4ee5U63d0U95eeU90e8U5206U6682U65f6U4e0dU52a0U5165U8fd9U4e2a";
     8            do = "add_comment";
     9            kind = task;
    10            "member_id" = zpHr2dsRvQQxYJxo2;
    11            other = "";
    12            "task_id" = 55a47e79ec25e3641;
    13      */
    14     // URL
    15     // http://m.taskwedo.com/API/wedo1/wedo.php
    16     // 设置URL
    17     NSString *url = @"http://m.taskwedo.com/API/wedo1/wedo.php";
    18     // body中带有汉字的,需要进行转码
    19     NSString *commonContent = @"类模块计划用到第三部分中,待提问、回答积累到一定数量时,便于大家的问题的快速查找,所以提问部分暂时不加入这个";
    20     commonContent = [commonContent stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
    21     // 创建body
    22     NSMutableDictionary *dict = [NSMutableDictionary dictionary];
    23     [dict setValue:@"" forKey:@"address"];
    24     [dict setValue:@"commonContent" forKey:@"comment"];
    25     [dict setValue:@"add_comment" forKey:@"do"];
    26     [dict setValue:@"task" forKey:@"kind"];
    27     [dict setValue:@"zpHr2dsRvQQxYJxo2" forKey:@"member_id"];
    28     [dict setValue:@"" forKey:@"other"];
    29     [dict setValue:@"55a47e79ec25e3641" forKey:@"task_id"];
    30     // 调用方法
    31     [self.session POST:url parameters:dict progress:^(NSProgress * _Nonnull uploadProgress) {
    32         NSLog(@"上传进度");
    33     } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
    34         NSLog(@"请求成功%@", responseObject);
    35     } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
    36         NSLog(@"请求失败");
    37     }];
    38 }
  • 相关阅读:
    Visio 2003 怎样将用例图画的更美观些
    Mvc项目实例 MvcMusicStore 四
    Mvc项目实例 MvcMusicStore 三
    Lock 会引起死锁吗
    进程和线程
    vb.net winform pos机并口打印机打印以及开钱箱。。。。
    .net winfrom 定义全局快捷键!
    WebBrowser中HTML的js与winform中其他的窗体调用。。。
    [转]确认网络环境3G/WIFI
    图片分割的代码
  • 原文地址:https://www.cnblogs.com/crazygeek/p/5535106.html
Copyright © 2020-2023  润新知