По-видимому, сервер не может понять мой словарь с массивом. Я написал этуНевозможно опубликовать словарь с массивом с AFNetworking
NSURL *url = [NSURL URLWithString:@"http://"];
self.manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:url];
self.manager.requestSerializer = [AFJSONRequestSerializer serializer];
AFJSONResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
[self.manager setResponseSerializer:responseSerializer];
self.manager.responseSerializer.acceptableContentTypes = [self.manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
NSDictionary *parameters = [NSDictionary dictionaryWithObjectsAndKeys:
[SOUser sharedManager].id, @"id",
@"vk", @"socialId",
[SOUser sharedManager].firstName, @"firstName",
[SOUser sharedManager].lastName, @"lastName",
[SOUser sharedManager].sex, @"gender",
[SOUser sharedManager].friends, @"friends", nil];
[self.manager POST:@"api/user/"
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject) {
//NSLog(@"Response: %@", [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding]);
NSLog(@"OPERATION = %@", operation);
NSLog(@"%@", operation.responseString);
NSLog(@"JSON: %@", responseObject);
NSLog(@"Token = %@", [responseObject objectForKey:@"token"]);
[SOUser sharedManager].legendaryToken = [responseObject objectForKey:@"token"];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
NSLog(@"message: %@", [operation.responseObject objectForKey:@"message"]);
NSLog(@"operation: %@", [operation.responseObject objectForKey:@"errors"]);
NSDictionary *ac = [operation.responseObject objectForKey:@"errors"];
NSLog(@"%@", [ac objectForKey:@"email"]);
NSString *fg = [ac objectForKey:@"email"];
NSLog(@"%@", fg);
}];
Где [SOUser sharedManager].friends
является NSMutableArray
:
for (int i = 0; i < 25; i++) {
[self.friends addObject:[NSString stringWithFormat:@"%i", i]];
}
А на сервере я получать все мои данные, но вместо моего массива с моим номера сервера печати строка «массив»? Что это может быть?
Мой JSON:
JSON: {
email = "<null>";
"fb_friends" = "<null>";
"fb_id" = "<null>";
firstName = Sergey;
gender = 2;
id = 17;
lastName = Oleynich;
phone = "<null>";
token = 6990b71a61411d9d038dad1e2a54dd9f;
"vk_friends" = (
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24
);
"vk_id" = 3;
сервер
JSON : Id:17
vk_id:3
fb_id:NULL
firstName:Sergey
lastName:Oleynich
gender:2
email:NULL
vk_friends:Array
1. Это семантика, но то, что вы называете своим «JSON», на самом деле не является JSON. Это то, что вы получаете, когда NSLog-объект, из которого будет создан JSON. 2. Вы показываете нам, что получил сервер, но вы не показываете нам, что вы создали этот вывод. Во всяком случае, факт, что 'vk_friends' является' Array', обнадеживает. Интересно, проблема в том, как вы рассматриваете/показываете запрос на сервере, а не проблему с самим запросом. Покажите нам, как вы создали окончательный вывод «сервер». – Rob
@Rob Покажите нам, как вы создали этот окончательный вывод «сервер». Я не понимаю, что я должен показать? Вы имеете в виду, что именно я отправляю на сервер? Как я могу это показать? –
Нет, мой вопрос заключается в том, как вы выводите последний блок вывода в конце исходного вопроса. Если я правильно понял, вы спрашиваете: «Почему я вижу« Массив »для моего ключа« vk_friends »? Ну, мы должны увидеть, как вы создали этот вывод. Ваш исходный вопрос подразумевает, что вы считаете, что проблема лежит в исходном запросе, и я предлагаю, чтобы запрос был прав, но скорее это может быть просто вопрос о том, как вы выводите 'vk_friends', что я не могу ответить до тех пор, пока вы покажете нам, как вы создали этот окончательный вывод «сервер». – Rob