我制作了一个社交网络应用程序,我调用各种Web服务来获取用户的不同数据,如朋友列表,最新更新等。
但是当我在后台调用一个Web服务,然后拨打另一个Web服务时,第一个停止,第一个没有响应...
该怎么做?
一次无法调用两个Web服务吗?
答案 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
}
您需要为每个服务创建单独的单独线程,您也可以将这些数据保存在成员字段中。