使用XMLRPC和iphone给出错误(请详细了解更多)?

时间:2010-10-11 15:52:48

标签: iphone

我收到错误:

* [NSURLError对象]:无法识别的选择器发送到实例0x5f510e0 *
2010-10-11 11:41:33.718 CBH [15454:207] **由于未捕获异常终止应用程序* 'NSInvalidArgumentException',原因:' - [NSURLError对象]:无法识别的选择器发送到实例0x5f510e0'* < / em>的

这是代码:

 NSArray *args = [NSArray arrayWithObjects:@"username",@"password",nil];   // the param(s)

    NSString *server = @"https://username:password@webservices.****.***:443/dsa/xmlrpc/restricted1/";         // the server 

    XMLRPCRequest *request = [[XMLRPCRequest alloc] initWithHost:[NSURL URLWithString:server]];
    [request setMethod:@"BootService.getPublicTokenGeneric" withObject:args];

    id response = [self executeXMLRPCRequest:request];
    [request release];

    if( [response isKindOfClass:[NSError class]] ) {
        NSLog(@"Error : %@",response);

    }
    else {
        NSLog(@"Response ");
    } 

 }

- (id)executeXMLRPCRequest:(XMLRPCRequest *)req {
    NSLog(@"HEllo"); 
     XMLRPCResponse *userInfoResponse = [XMLRPCConnection       sendSynchronousXMLRPCRequest:req]; 

    if([userInfoResponse isKindOfClass:[NSError class]]) {
        NSLog(@"Error %@",userInfoResponse);

    }       
    return [userInfoResponse object];
}     

有人可以帮我撕掉这个错误!!

我编辑了代码,现在我可以看到NSURLError是:   Domain = NSURLErrorDomain Code = -1005“网络连接丢失。”
NSErrorFailingURLStringKey = http://用户名:密码@ .org:443 / zws / xmlrpc / restricted1 /,NSErrorFailingURLKey = http://用户名:密码@ 。组织:443 / ZWS / XMLRPC / restricted1 /,
NSLocalizedDescription =网络连接丢失。,NSUnderlyingError = 0x5f2b300“网络连接丢失。

1 个答案:

答案 0 :(得分:0)

看起来XMLRPCConnection会返回一个NSURLError对象,它不喜欢你正在调用的对象选择器。

所以userInfoResponse是一个NSURLError。你需要测试这个,就像你正在测试NSError一样,尽管很快。

XMLRPCResponse *userInfoResponse = [XMLRPCConnection sendSynchronousXMLRPCRequest:req];
if([userInfoResponse isKindOfClass:[NSURLError class]]) {
    //Do something else
}
else return [userInfoResponse object];

您的基于ID的代码容易出现这类错误,我建议使用更强类型的方法。