How to set HTTP request body using AFNetwork's AFHTTPRequestOperationManager?

前端 未结 7 1850
死守一世寂寞
死守一世寂寞 2020-12-13 14:49

I am using AFHTTPRequestOperationManager (2.0 AFNetworking library) for a REST POST request. But the manager only have the call to set the parameters.

-((         


        
7条回答
  •  执笔经年
    2020-12-13 15:38

    for AFHTTPRequestOperationManager

    [requestOperationManager.requestSerializer setValue:@"your Content Type" forHTTPHeaderField:@"Content-Type"];
    [requestOperationManager.requestSerializer setValue:@"no-cache" forHTTPHeaderField:@"Cache-Control"];
    
    // Fill parameters
    NSDictionary *parameters = @{@"name"        : @"John",
                                 @"lastName"    : @"McClane"};
    
    // Customizing serialization. Be careful, not work without parametersDictionary
    [requestOperationManager.requestSerializer setQueryStringSerializationWithBlock:^NSString *(NSURLRequest *request, NSDictionary *parameters, NSError *__autoreleasing *error) {
    
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:parameters options:NSJSONWritingPrettyPrinted error:nil];
        NSString *argString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
        return argString;
    }];
    
    [requestOperationManager POST:urlString parameters:parameters timeoutInterval:kRequestTimeoutInterval success:^(AFHTTPRequestOperation *operation, id responseObject) {
    
        if (success)
            success(responseObject);
    
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    
        if (failure)
            failure(error);
    }];
    

提交回复
热议问题