Sudzc iPhone SOAP - Как я могу обработать ошибку SOAP, используя автоматически сгенерированные данные этой библиотеки? - PullRequest
1 голос
/ 10 февраля 2011

У меня есть ответ, который возвращает ошибку SOAP в случае исключения. Я хочу справиться с этой ошибкой SOAP. Но ответ, который я получаю путем десериализации ответа SOAP, не имеет ошибки SOAP.

Я использовал библиотеку Sudzc для генерации целевого кода C для своих веб-сервисов.

Помощь будет оценена.

Спасибо

Priya

Ответы [ 2 ]

2 голосов
/ 12 апреля 2011

Кажется, есть ошибка в SoapRequest.m, который связан с Sudzc.

В частности, если вы посмотрите на

- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

метод и перейдите к следующему биту кода:

id output = nil;
SoapFault* fault = [SoapFault faultWithXMLDocument: doc];

if([fault hasFault]) {
    if(self.action == nil) {
        [self handleFault: fault];
    } else {
        if(self.handler != nil && [self.handler respondsToSelector: self.action]) {
            [self.handler performSelector: self.action withObject: output];
        } else {
            NSLog(@"SOAP Fault: %@", fault);
        }
    }
}

Вы можете видеть, что при возврате в обработчик выходные данные всегда будут равны нулю.

Чтобы исправить эту проблему, вы можете просто вернуть SoapFault вместо вывода в ваш обработчик следующим образом:

...
[self.handler performSelector: self.action withObject: fault];
...
0 голосов
/ 10 февраля 2011

В вашем методе обработчика возврата Sudzc вы можете [idOfSoapObject isKindOfClass: [класс SoapFault]]

Если вы уже это делаете, я бы предложил включить вход в систему: ваша служба будет иметь .logging(BOOL) собственность.Это будет регистрировать полные запросы мыла и ответы.Здесь вы можете проверить ответ вручную на наличие ошибки.

...