JSON Post ошибка запроса - PullRequest
1 голос
/ 07 июля 2011

Я пытаюсь отправить данные пользователя со страницы регистрации в словаре, используя JSON, но отображается ошибка «Запрос без данных».Как это исправить?

Вот код:

NSString *jsonString = [dicRegister JSONRepresentation];
NSData *jsonData = [NSData data];
jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSMutableString *string1 = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"jsonData: %@", string1);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.xyz.com/phpFile/methodName/"]];
NSMutableData *requestData = [[NSMutableData alloc] initWithBytes:[jsonString UTF8String] length:[jsonString length]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"json" forHTTPHeaderField:@"Data-Type"];
[request setValue:[NSString stringWithFormat:@"%d", [requestData length]] forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody: requestData];

NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil ];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding];

NSLog(@"returnData: %@", returnString);

Ответы [ 2 ]

1 голос
/ 11 июля 2011

Код здесь в порядке ... произошла ошибка в методе php на стороне сервера .... В любом случае, спасибо всем за помощь.:)

1 голос
/ 08 июля 2011

Если проблема не с сервером, возможно, вы отправляете неверную длину веб-службе. Поскольку вы используете [jsonString UTF8String], вы также должны использовать [jsonString lengthOfBytesUsingEncoding:NSUTF8StringEncoding]. В документации сказано, что length возвращает количество символов Unicode.

Пример:

NSString *sample = @"El Niño";
NSLog(@"length: %d utf8length: %d",[sample length], [sample lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);

производит вывод

length: 7 utf8length: 8

Причина в том, что для представления требуется 2 символа UTF8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...