当我在 Soap 服务的 wsdl 上使用从 SUDZC 生成的 LoginHandler 时,我只会看到以下输出:
Login returned the value: OK
但是,当我启用 service.logging 时,我会得到以下输出:
<soap:Body>
<LoginResponse xmlns="http://tempuri.org/">
<LoginResult>OK</LoginResult>
<authToken>
<InnerToken>21017998-02fd-4ac9-b132-98c0cb2fd1bf</InnerToken>
</authToken>
</LoginResponse>
我需要获取 InnerToken 值并将其保留以供后续 SOAP 调用使用(即需要将其添加到 service.headers 成员中)。关于如何从上述结果中获取 InnerToken 的任何想法?
我正在使用以下 LoginHandler 代码片段。
- (void) LoginHandler: (id) value {
// Handle errors
if([value isKindOfClass:[NSError class]]) {
NSLog(@"%@", value);
return;
}
// Handle faults
if([value isKindOfClass:[SoapFault class]]) {
NSLog(@"%@", value);
return;
}
// Do something with the NSString* result
NSString* result = (NSString*)value;
NSLog(@"Login returned the value: %@", result);
}