user3196922
user3196922

Reputation: 115

How to POST data using AFNetworking 2.0?

I need to send my data by POST, in variable data.

I do it like this:

 AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *params = @{@"email" : email, @"password" : pass };
[manager POST:URLString parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:
 ^(AFHTTPRequestOperation *operation, NSError *error) {
     NSLog(@"Error: %@", error); }];

and have:

JSON: {
Data = "<null>";
Message = "unexpected end of JSON input";
Result = fail;
}

I know the method

  - (AFHTTPRequestOperation *)POST:(NSString *)URLString
                  parameters:(NSDictionary *)parameters
   constructingBodyWithBlock:(void (^)(id <AFMultipartFormData>))block
                     success:(void (^)(NSURLSessionDataTask *, id))success
                     failure:(void (^)(NSURLSessionDataTask *, NSError *))failure;

But how can I send my dictionary in variable data to the web server?

Upvotes: 3

Views: 8524

Answers (1)

Rob
Rob

Reputation: 437382

Does your web service expect the parameters to be formatted as JSON? If so, before you invoke the POST method, you need to tell the manager to use a JSON requestSerializer, i.e. AFJSONRequestSerializer:

manager.requestSerializer = [AFJSONRequestSerializer serializer];

By default, AFNetworking assumes you want to use AFHTTPRequestSerializer (i.e. a request with a Content-Type of application/x-www-form-urlencoded).

Upvotes: 11

Related Questions