AF Post 请求,请求参数放在Body处

2019-05-09  本文已影响0人  简书花花
    //将json字符串转换为data
    NSData *postData = [josnStr dataUsingEncoding:NSUTF8StringEncoding];
    //创建initWithObjects
    AFURLSessionManager *manager = [HttpRequest manager];
    //创建request
    NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] requestWithMethod:@"POST" URLString:url parameters:nil error:nil];
    //设置请求头
    NSString * token = [LoginModel sharedLoginModel].token?:@"";
    [request setValue:token forHTTPHeaderField:@"token"];

    [request setValue:[NSString stringWithFormat:@"%lu",(unsigned long)postData.length] forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
    [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
    // 关键! 转化为NSaData作为HTTPBody
    [request setHTTPBody: postData];
    AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer];
    responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json",
                                                 @"text/html",
                                                 @"text/json",
                                                 @"text/javascript",
                                                 @"text/plain",
                                                 nil];
    manager.responseSerializer = responseSerializer;
    //进行Task请求
    [[manager dataTaskWithRequest:request uploadProgress:nil downloadProgress:nil completionHandler:^(NSURLResponse *response,id responseObject,NSError *error){
        if (error || !responseObject) {
            // 失败处理
        }
        NSString *responseJson = [[NSString alloc] initWithData:responseObject  encoding:NSUTF8StringEncoding];
        //转换字典格式
        NSDictionary *jsonDict = [self dicWithJsonStr:responseJson];

       //处理请求结果
        
    }]resume];

//json字符串转为字典
+ (NSDictionary *)dicWithJsonStr:(NSString *)jsonString
{
    if (jsonString == nil) {
        return nil;
    }
    
    NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    NSError *err;
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData
                                                        options:NSJSONReadingMutableContainers
                                                          error:&err];
    if(err)
    {
        NSLog(@"json解析失败:%@",err);
        return nil;
    }
    return dic;
}

上一篇 下一篇

猜你喜欢

热点阅读