美文网首页工作生活
ios 网络请求 AFNetworking

ios 网络请求 AFNetworking

作者: 污嘿 | 来源:发表于2019-07-03 09:57 被阅读0次

1、首先导入 AFNetworking

2、在文件中引入头文件

3、写方法


+(nullable NSURLSessionDataTask*)POSTWithURL:(NSString *)urlString parameters:(id)parameters completeBlock:(completeBlock)completeBlock{

    //    [HUDManager showIndicator:@"加载中。。。"];

    NSURLSessionDataTask*task=nil;

    NSLog(@"参数:%@",parameters);


    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

    AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer];

    manager.responseSerializer = responseSerializer;

    //创建你得请求url、设置请求头

    //    NSString  *URL = [NSString stringWithFormat:@"%@%@",RequestManagerUrl,urlString];

    NSString  *URL = urlString;

    NSMutableURLRequest * request = [[AFHTTPRequestSerializer serializer] requestWithMethod:@"post" URLString:URL parameters:parameters error:nil];


    //    [request setValue:[DCSpeedy CKmd5:tag] forHTTPHeaderField:@"xingli"];


    [[manager dataTaskWithRequest:request uploadProgress:^(NSProgress * _Nonnull uploadProgress) {


    } downloadProgress:^(NSProgress * _Nonnull downloadProgress) {


    } completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {

        if (!error) {

            NSDictionary*Dic;

            //判断返回的类型

            if ([responseObject isKindOfClass:[NSDictionary class]]) {

                Dic=responseObject;

            }else if ([responseObject isKindOfClass:[NSData class]]){

                NSString*result=[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding];

                //                Dic=[self  dictionaryWithJsonString:result];

                Dic = [self parseJsonStringToNSDictionary:result];

            }


            NSLog(@"dic=%@",Dic);

            //                [HUDManager hiddenWithSuccess:0.5 title:Dic[@"msg"]];

            if (completeBlock) {

                completeBlock (Dic,nil);

            }


        }else{//网络出错

            //            [HUDManager hiddenWithError:1.0 title:@"加载失败"];

            if (completeBlock) {

                NSLog(@"error==%@",error.userInfo);

                completeBlock(nil ,error);

            }

        }

    }]resume];


    return task;

}

4、需要json转换


+ (NSDictionary *)parseJsonStringToNSDictionary:(NSString *)jsonString

{

    jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\r\n" withString:@""];

    jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\n" withString:@""];

    jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\t" withString:@""];

    jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\\" withString:@""];


    NSError *error2=nil;

    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&error2];

    //if ([dict isValid]) {

    return dict;

    // }

    return nil;

}

相关文章

网友评论

    本文标题:ios 网络请求 AFNetworking

    本文链接:https://www.haomeiwen.com/subject/udwfhctx.html