0

我在我的 iPhone 项目中使用从 sudzc 生成的 acr 代码。我已经导入了丢失的 h 文件,修复了 body 标签,一切正常……对于任何函数的第一次调用。我在代码中的多个位置调用函数,例如在 viewDidLoad 中:

TestWsdlService_ManagerService* service = [TestWsdlService_ManagerService service];
 [service getAttended:self action:@selector(getEventsHandler:) email: @"testmail@bla.com" password: @"testpass"];

第一次通话效果很好。日志记录已启用,因此我看到了正确的帖子和正确的响应。当我再次调用相同的函数时,我只看到正确的帖子,但它给了我一个空响应的错误(没有 xml,什么都没有):

2012-08-14 10:26:55.574 Test[1768:11603] nserror Error Domain=CXMLErrorDomain Code=1 

"Unknown error" UserInfo=0x6e5fea0 {NSLocalizedDescription=Unknown error}
2012-08-14 10:26:55.580 Test[1768:11603] Error: Unknown error

我也用这样的单例尝试过:

static TestSoapSingleton *sharedInstance = nil;

+ (TestSoapSingleton *)sharedInstance {
    if (sharedInstance == nil) {
        sharedInstance = [[super allocWithZone:NULL] init];
    }

    return sharedInstance;
}

- (id)init
{
    self = [super init];

    if (self) {
        self.manager = [TestWsdlApi_ManagerService service];
        self.manager.logging = YES;
        self.username =@"testmail@blub.com";
        self.password = @"test pass";
    }

但最后我得到了同样的错误。该错误在 initWithData 函数的 CXMLDocument.m 中引发,因为 inData 为空 (size=0)。同样在SoapRequest.m 中的connectionDidFinishLoading 函数中,receivedData 是空的。

我尝试调试 SoapRequest.m 并检测到,在函数的第一次和第二次调用中调用了 didReceiveResponse,但仅在第一次调用了 didReceiveData。

如果我像这样在彼此后面进行两个方法调用:

TestWsdlService_ManagerService* service = [TestWsdlService_ManagerService service];
     [service getAttended:self action:@selector(getEventsHandler:) email: @"testmail@bla.com" password: @"testpass"];

TestWsdlService_ManagerService* service2 = [TestWsdlService_ManagerService service];
     [service2 getAttended:self action:@selector(getEventsHandler:) email: @"testmail@bla.com" password: @"testpass"];

它也可以正常工作。

希望有人有解决办法,谢谢

4

1 回答 1

0

几个小时后,我发现了错误...网络服务器问题/会话问题。zend::auth 适配器出现问题,但我想知道为什么 ksoap2 api 正在处理会话事物而 nsurlconnection 不是^^

于 2012-08-22T17:21:07.770 回答