1

我有一个响应,它会在出现异常时返回 SOAP 错误。我想处理这个 SOAP 错误。但是,我通过反序列化 SOAP 响应得到的响应没有 SOAP 错误。

我使用 Sudzc 库为我的 Web 服务生成目标 C 代码。

帮助将不胜感激。

谢谢,

普里亚

4

2 回答 2

2

与 Sudzc 捆绑的 SoapRequest.m 中似乎存在一个错误。

具体来说,如果你看一下

- (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];
...
于 2011-04-12T09:49:27.583 回答
0

在您的 Sudzc 返回处理程序方法中,您可以 [idOfSoapObject isKindOfClass:[SoapFault class]]

如果您已经这样做了,那么我建议您打开 Logging:您的服务将具有.logging(BOOL) 属性。这将记录完整的肥皂请求和响应。您可以在此处手动检查响应是否存在故障。

于 2011-02-10T14:51:59.267 回答