iOS中AFNetworking的簡單使用

寫了這麼多博客,一直沒記起來寫AFNetworking框架的使用,通過@踩尾巴的妖精的提醒才發現,如今整理點簡單的例子:
json

GET:app

    // 1.得到請求管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    // 2.封裝請求參數
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"userId"] = [appDefault objectForKey:@"userId"];
    params[@"IMSI"] = _IMSI.text;
    params[@"nickName"] = _nickName.text;
    params[@"phoneNumber"] = _phoneNumber.text;
    
    NSString *url = [ServiceInfo stringByAppendingString:@"http://103.238.80.57:8080/Vietnam/Application/bindingDevice"];
    
    // 3.發送GET請求
    [mgr GET:url parameters:params
    success:^(AFHTTPRequestOperation *operation, id responseObject) {
         NSLog(@"%@",responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"%@",error);
    }];

POST:框架

// 1.得到請求管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    // 2.封裝請求參數
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"userId"] = [appDefault objectForKey:@"userId"];
    params[@"IMSI"] = _IMSI.text;
    params[@"nickName"] = _nickName.text;
    params[@"phoneNumber"] = _phoneNumber.text;
    
    NSString *url = [ServiceInfo stringByAppendingString:@"http://103.238.80.57:8080/Vietnam/Application/bindingDevice"];
    
    // 3.發送GET請求
    [mgr POST:url parameters:params
    success:^(AFHTTPRequestOperation *operation, id responseObject) {
         NSLog(@"%@",responseObject);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(@"%@",error);
    }];

值得注意的是,AFNetworking默認是使用JSON格式發送和響應返回來的數據的,若是返回來的數據不是JSON,就須要設置一下請求管理者,下面請看代碼:url

// 1.得到請求管理者
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
    
    // 由於傳遞過去和接收回來的數據都不是json類型的,因此在這裏要設置爲AFHTTPRequestSerializer和AFHTTPResponseSerializer
    mgr.requestSerializer = [AFHTTPRequestSerializer serializer];// 請求
    mgr.responseSerializer = [AFHTTPResponseSerializer serializer];// 響應
    
    // 2.封裝請求參數
    NSMutableDictionary *params = [NSMutableDictionary dictionary];
    params[@"userId"] = [appDefault objectForKey:@"userId"];
    params[@"IMSI"] = _IMSI.text;
    params[@"nickName"] = _nickName.text;
    params[@"phoneNumber"] = _phoneNumber.text;
    
    NSString *url = [ServiceInfo stringByAppendingString:@"http://103.238.80.57:8080/Vietnam/Application/bindingDevice"];
    
    // 3.發送GET請求
    [mgr GET:url parameters:params
     success:^(AFHTTPRequestOperation *operation, id responseObject) {
            // 轉碼,若是返回的數據不是JSON,這裏必需要轉碼
            NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];

            NSLog(@"%@",string);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
            NSLog(@"%@",error);
    }];
相關文章
相關標籤/搜索