Опубликовать JSON с помощью Xcode - PullRequest
0 голосов
/ 24 ноября 2011

Я пытаюсь отправить данные в формате json на мой веб-сервис, используя POST. У меня есть страница php на моем сервере, которая получает строку json и распечатывает ее.

Проблема в том, что полученный массив POST пуст, ниже мой код в моем приложении:

NSString *jsonRequest = @"{\"username\":\"james\",\"password\":\"james1234\"}";
NSData *requestData = [NSData dataWithBytes:[jsonRequest UTF8String] length:[jsonRequest length]];
NSURL *url = [NSURL URLWithString:[[NSString alloc] initWithFormat:@"http://mydomain.com/check.php"]];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];

[request setHTTPMethod:@"POST"];
[request setHTTPBody:requestData];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:[NSString stringWithFormat:@"%d",[requestData length]] forHTTPHeaderField:@"Content-Length"];

[NSURLConnection connectionWithRequest:[request autorelease] delegate:self];

check.php имеет следующий код:

<?php

    print_r($_POST);
?>

Я получаю следующий вывод: Array ( )

Я перепробовал все и не могу отправить строку json на мой веб-сервис. Я уверен, что я что-то упускаю, однако я не знаю, что это такое.

1 Ответ

2 голосов
/ 28 ноября 2011

Я получил его на работу, мне пришлось использовать библиотеку ASIHTTP . ниже код:

NSURL *url = [NSURL URLWithString:[[NSString alloc] initWithFormat:@"http://mydomain.com/check.php"]];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setRequestMethod:@"POST"];
[request setDelegate:self];
[request setPostValue:@"james" forKey:@"username"];
[request setPostValue:@"james1234" forKey:@"password"];
[request startAsynchronous];
...