美文网首页
post请求body

post请求body

作者: 温柔vs先生 | 来源:发表于2020-03-06 09:39 被阅读0次
+ (void)startRequestWithUrl:(NSString *)url
                     method:(NSString *) method
                     params:(NSDictionary *)params
               successBlock:(void (^)(BOOL success,NSDictionary *data,NSString* msg))successBlock
                  failureBlock:(void (^)(NSString* description))failureBlock {
    NSString *URLStr = [NSString stringWithFormat:@"%@%@",URL_main,url];
    
    NSDictionary *mutableParams = [NSDictionary nullDic:params?:@{}];
    NSError *error;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mutableParams options:0 error:&error];
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    
    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
    //method 为时post请求还是get请求
    NSMutableURLRequest *request = [[AFJSONRequestSerializer serializer] requestWithMethod:method URLString:URLStr parameters:nil error:nil];
    //设置超时时长
    request.timeoutInterval = 30;
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    
    //将对象设置到requestbody中 ,主要是这不操作
    [request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
    //进行网络请求
    [[manager dataTaskWithRequest:request uploadProgress:^(NSProgress * _Nonnull uploadProgress) {
        
    } downloadProgress:^(NSProgress * _Nonnull downloadProgress) {
        
    } completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) {
        if (!error) {
            
            NSData *data = [NSJSONSerialization dataWithJSONObject:responseObject options:NSJSONWritingPrettyPrinted error:nil];
            
            NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(@" === %@",jsonString);
            
            NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
            
            if (successBlock) successBlock(YES, dic[@"info"], dic[@"responseMsg"]);

        } else {
            
            if (failureBlock) failureBlock(error.localizedDescription);
            
        }
    }] resume];
    
}

相关文章

网友评论

      本文标题:post请求body

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