Сериализовано в приложении "Корзина покупок", теперь пытаюсь отправить его на сервер с помощью http Post - не достигает места назначения - PullRequest
0 голосов
/ 17 июня 2011

В моем приложении есть корзина для покупок и базовая структура данных, которую я сериализовал в файл XML.Я использую следующий код, чтобы разместить его на моем сервере.Однако ничего не происходит.Когда я проверяю свой сервер, я не могу найти свой файл там.Поэтому я попытался использовать только строку вместо файла и все то же самое.Кажется, что ничего не отправлено из приложения на сервер.Я бегу с симулятора.

Мне интересно, есть ли что-то не так с этим кодом.

CartSingleton *Cart = [CartSingleton getSingleton];

 id xmlFile = [Cart serializeCart];

 //Now send the xml file to the server

 NSURL *url = [[NSURL alloc] initWithString:@"http://www.XXXXXXXXX.com/iOS_Files/xmlFile"];

 NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:url];

 [req setHTTPMethod:@"POST"];

 NSData *paramData = [xmlFile dataUsingEncoding:NSUTF8StringEncoding];

 [req setHTTPBody:paramData];

 NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:req delegate:self];


 if(theConnection)

    {

      NSMutableData *data = [[NSMutableData alloc] init];

      self.receivedData = data;

      [data release];

    }

 else 

    {

      NSLog(@"Unable to make connection!");

    }

Буду очень признателен за любую помощь.Спасибо

Ответы [ 2 ]

1 голос
/ 17 июня 2011

См. Класс ссылка , там также можно найти ссылки для примеров приложений.

Этот код

    if(theConnection)

{

  NSMutableData *data = [[NSMutableData alloc] init];

  self.receivedData = data;

  [data release];

}

не запускает соединение.Свойство receiveData будет иметь новый объект NSData, который затем изменяется в качестве полученных данных ответа.

Для лучшего понимания использования NSUrlConnection следуйте этому официальному руководству

Что еще вы можете сделать, это протестировать сервер без приложения, используя расширение REST Client firefox (просто отправьте с ним почтовый запрос и посмотрите, что произойдет).

0 голосов
/ 17 июня 2011

Одна из возможных проблем с приведенным выше кодом (их могут быть и другие), заключается в том, что установка соединения будет асинхронной. Вот почему вы должны были предоставить объект делегата выше. Поэтому соединение фактически не устанавливается, пока делегат не получит обратный вызов, чтобы сказать, что он готов.

Реализованы ли у вас какие-либо методы делегатов?

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