可以从iPhone同时调用多个Web服务吗?

时间:2012-03-20 05:45:09

标签: iphone objective-c

我制作了一个社交网络应用程序,我调用各种Web服务来获取用户的不同数据,如朋友列表,最新更新等。

但是当我在后台调用一个Web服务,然后拨打另一个Web服务时,第一个停止,第一个没有响应...

该怎么做?

一次无法调用两个Web服务吗?

1 个答案:

答案 0 :(得分:2)

我不确定你是怎么称呼服务的。如果您要显示您的代码,任何人都可以帮助您更多...

你可以试试这个 -

    - (NSData *)fetchProfileData:(NSString *)accessToken{
          NSURL *url = [NSURL URLWithString:serverURL];
          request= [NSMutableURLRequest requestWithURL:url];
          [request setHTTPMethod:@"POST"];
          NSError *error;
          NSHTTPURLResponse *response;
          NSData *responseData = [NSURLConnection sendSynchronousRequest:request   returningResponse:&response error:&error];
         return responseData;
    }

调用其他Web服务为每个服务创建单独的单独函数,如

    - (NSData *)fetchFriendsList:(NSString *)accessToken{
       //write your logic, you see above method for more details 
    } 

    - (NSData *)fetchUpdates:(NSString *)accessToken{
       //write your logic, you see above method for more details
    }

从视图控制器调用上述方法,如

    [NSThread detachNewThreadSelector:@selector(callFetchProfileDataServices:) toTarget:self withObject:@"userToken"];

    -(void)callFetchProfileDataServices:(NSString*)token{
        NSData *response = [self fetchProfileData:token];
        //now parse response data data using suitable parser 
    }

您需要为每个服务创建单独的单独线程,您也可以将这些数据保存在成员字段中。