Objective c Sudzc响应故障(iOS ARC)
我目前对Sudzc生成的代码有问题。(适用于基于ARC的iOS) 使用生成的代码调用soapweb服务效果很好,当我需要检索响应时,问题就迎刃而解了 我目前处理的呼叫响应如下:Objective c Sudzc响应故障(iOS ARC),objective-c,ios,soap,sudzc,Objective C,Ios,Soap,Sudzc,我目前对Sudzc生成的代码有问题。(适用于基于ARC的iOS) 使用生成的代码调用soapweb服务效果很好,当我需要检索响应时,问题就迎刃而解了 我目前处理的呼叫响应如下: -(void)userLoginCompleted:(id)value { if([value isKindOfClass:[NSError class]]) { NSLog(@"%@",value); } if([value isKindOfClass:[SoapFau
-(void)userLoginCompleted:(id)value
{
if([value isKindOfClass:[NSError class]])
{
NSLog(@"%@",value);
}
if([value isKindOfClass:[SoapFault class]])
{
NSLog(@"%@",value);
}
if([value isKindOfClass:[IWWSLoginResult class]])
{
IWWSLoginResult *loginData = (IWWSLoginResult*)value;
NSLog(@"LoginData Result: %i",loginData.Result);
NSLog(@"LoginData AccessToken: %@",loginData.AccessToken)
//Other login related stuff here
}
}
每当使用NSError或SoapFault调用此代码时,代码运行良好(即,它将解析日志中的错误)
但当使用IWWSLoginResult作为参数调用时,结果
和访问令牌
属性分别为NO
和(null)
,即使Sudzc代码的日志记录显示此响应开发
:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<UserLoginResponse xmlns="[Omitted]">
<UserLoginResult>
<Result>true</Result>
<AccessToken>[Omitted]</AccessToken>
</UserLoginResult>
</UserLoginResponse>
</soap:Body>
</soap:Envelope>
真的
[省略]
AccessToken和xmlns url未写入,但存在
这是生成的SudzC代码中的错误,还是我的部件中的错误?SudzC在soap结果消息中检查
标记,但大多数.Net Web服务使用
标记。这很可能使框架认为没有结果,因此将结果的值默认为false或null
要修复此更改,请在SoapRequest.m文件中添加以下元素:
CXMLNode *element = [[Soap getNode: [doc rootElement] withName: @"Body"] childAtIndex:0];
到
我有完全相同的bug,但没有添加“soap:”前缀,而是添加了额外的if语句-if元素为nil,然后尝试查找soap:Body
CXMLNode *element = [[Soap getNode: [doc rootElement] withName: @"soap:Body"] childAtIndex:0];