Как я могу подтвердить, что HTTP POST вызывает мой код? - PullRequest
1 голос
/ 25 июня 2010

Я пытаюсь извлечь данные из метода POST, код выглядит следующим образом:

-(void)postXMLFeed:(NSString *)XMLStrPost
{   
    //NSLog (@"XML Feed3: ", XMLStrPost);

    NSURL *url = [NSURL URLWithString:@"http://xxx.xxx.x.xxx/stephen/sync_upload.php"];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [request setValue:@"text/xml" forHTTPHeaderField:@"Content-type"];
    [request setHTTPMethod:@"POST"];
    [request setHTTPBody:[XMLStrPost dataUsingEncoding:NSASCIIStringEncoding]];

    NSURLResponse *response;
    NSError *error;
    response = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];


    // Update log file.
    NSLog(@"XML feed POSTED to website.");

    //[super postXMLFeed];
}

Мой XML-канал хранится в переменной XMLStrPost.Вышеупомянутый код, кажется, работает, но у меня нет никакого способа подтвердить это.

Сценарий должен разобрать строку и записать ее в базу данных, но, похоже, этого не происходит.Прежде чем произойдет разбор, я хочу подтвердить, что вызывается скрипт.

Как я могу подтвердить, что вызывается скрипт sync_upload.php?

Ответы [ 4 ]

5 голосов
/ 25 июня 2010

Вы неправильно используете API.+[NSURLConnection sendSynchronousRequest:returningResponse:error] возвращает объект NSData, который является телом ответа.Вы назначаете его в NSURLResponse объект, что означает, что вы не только нарушаете систему типов (вы должны получать предупреждение при компиляции), но вы также теряете указатель на NSURLResponse, что соединениедал вам.

Как будто вы дважды стреляете себе в ногу одной пулей ... («Стреляете двумя ногами одной пулей»?)

2 голосов
/ 25 июня 2010

Прежде чем вы углубитесь в эту тему, позвольте мне воспользоваться возможностью порекомендовать всевидящую интерактивную библиотеку HTTP по адресу http://allseeing -i.com / ASIHTTPRequest / . Делает ВСЕ ваши HTTP-взаимодействия значительно проще.

Тем не менее, если вы получите вызов NSLog () в консоли, то созданное вами синхронное соединение вернулось. Вы не проверяете, вернулся ли он с ошибкой какого-либо типа. Если бы я был тобой, я бы изучил некоторые элементы твоего объекта ответа. Но опять же, использование ASIHTTP позволит вам задать объекту запроса много хороших вопросов о его состоянии.

0 голосов
/ 25 июня 2010

Возвращает ли что-нибудь обратно на устройство, когда это сделано?Я бы, вероятно, отправил назад что-то, что обозначает успех или неудачу из сценария, чтобы вы могли прочитать на iPhone в переменной ответа.

0 голосов
/ 25 июня 2010

Проверьте, содержит ли ваш файл журнала запись из звонка NSLog.

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