3

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?

Rob
  • 415,655
  • 72
  • 787
  • 1,044
user3196922
  • 115
  • 2
  • 9

1 Answers1

11

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).

Rob
  • 415,655
  • 72
  • 787
  • 1,044
  • 1
    yep, AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; NSDictionary *Data = @{@"email" : email, @"password" : pass }; NSLog(@"%@",email); manager.requestSerializer = [AFJSONRequestSerializer serializer]; [manager POST:URLString parameters:Data success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure: ^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; – user3196922 Jan 16 '14 at 04:15
  • maybe i need to convert dictionary to json? – user3196922 Jan 16 '14 at 04:18
  • I understand, I need send it in variable data, how can I do this? – user3196922 Jan 16 '14 at 04:42
  • @user3196922 I'm going to prune some of our unrelated discussion out of this question's comments section, and we can [move this to chat](http://chat.stackoverflow.com/rooms/45335/discussion-between-rob-and-user3196922). – Rob Jan 16 '14 at 05:27