我在iOS中遇到大问题。 出于某些原因,我必须使用异步,因为我想传递SSL错误。 因此,我使用NSURLconnection并从didReceiveData中的Web服务器获取响应数据。 当我将一个网址发布到服务器时,它的效果非常好。
但我的问题是:如果我需要在同一时间向服务器发布2或3个不同的网址! 然后我在didReceiveData中收到响应数据,我想这会很混乱! 我怎么知道哪个响应的数据属于哪个帖子任务? 有谁可以帮助我?请...谢谢。
答案 0 :(得分:0)
为此,您必须在connection
的委托方法中查看NSURLConnection
。 &安培;使用两个不同的resposeData。
实施例:
这里有两个连接connSend
& connRecieve
如果使用connSend
NSURL *url = // Your URL
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
connSend=[[NSURLConnection alloc] initWithRequest:requestObj delegate:self];
和其他连接
NSURL *url = // Your URL
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
connRecieve =[[NSURLConnection alloc] initWithRequest:requestObj delegate:self]
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
if (connection==connSend) {
responseSend = [[NSMutableData alloc]init];
[responseSend setLength:0];
}
else{
responseData = [[NSMutableData alloc]init];
[responseData setLength:0];
}
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
if (connection==connSend) {
[responseSend appendData:data];
}
else{
[responseData appendData:data];
}
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
if (connSend==connection) {
NSLog(@"Error in sending");
}
else{
NSLog(@"Error in receiving");
}
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
if (connection==connSend) {
// Connection send.
}
else{
// Connection recive
}
}
你可以更好地创建不同的类来获得不同的服务器响应,