У меня есть задание, которое требует, чтобы я поместил строку как объект json, и перед отправкой объекта я должен поместить этот json-объект в заголовок http. Это мой код:Отправка строки как объекта JSON
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *nid = @"";
NSString *vocab = @"";
NSString *inturl = @"testoverview";
NSString *mail = @"[email protected]";
NSString *md5pw = @"4d57e7ef1b7c3f431aca424764e9d786";
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
nid, @"nid",
vocab, @"vocab",
inturl, @"inturl",
mail, @"mail",
md5pw, @"md5pw",nil];
NSString *json = @"{nid:"",vocab:"",inturl:testoverview, mail:[email protected], md5pw:4d57e7ef1b7c3f431aca424764e9d786}";
NSError *error;
NSString *url = @"http://udv.taenk.dk/chh/drupal-taenk/services/mobile";
NSData *data = [json dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:NSURLCacheStorageAllowed timeoutInterval:30.0];
NSURLConnection *connction = [[NSURLConnection alloc] initWithRequest:request delegate:self];
FSRemoteExecutor *remote = [[FSRemoteExecutor alloc] init];
[remote execute:url andHandler:[FSProductTestHandler alloc] JSONString:jsonString JSONData:jsonData Connection:connction];
[remote connection:connction didReceiveData:jsonData];
[remote connectionFinishedLoading:connction];
Моя проблема заключается в том, что я не могу использовать jsonDictionary с объектами и отправить его, Потому что формат строки, что сервис должен получить это:
«{» нидь ":" "," vocab ":" "," inturl ":" testoverview "," mail ":" "," md5pw ":" "}"
Словарь будет вставлять = в строку, и это будет не дайте мне ответа от службы.
Я хочу отправить строку (JSON в коде), как dataWithJSONObject: JSO, любит это:
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:json options:NSJSONWritingPrettyPrinted error:&error];
, но я получаю сообщение об ошибке satating это:
Нагрузочного приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: '* + [NSJSONSerialization dataWithJSONObject: опции: ошибка]: Неверный тип верхнего уровня в формате JSON записи'
может кто-нибудь поможет мне в этом?
Спасибо, можете ли вы рассказать мне, как получить данные ответа службы и распечатать их? – Lahib