如何使用XML解析器发出多个请求?

时间:2011-12-02 05:40:31

标签: iphone objective-c ios ios4

我想使用XML解析器在同一个类中发布3个请求。我可以设法一次只做一个请求。当我发出多个请求时,它会显示Parser Error。这就是我尝试的方式。

NSURL *url = [[NSURL alloc] initWithString:getAllFoodsURL];
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:url];

NSString *paramDataString = [NSString stringWithString:
                             @"<GetNames><DeviceId>1234</DeviceId><UserId>200</UserId></GetNames>"];

[req addValue:@"application/xml" forHTTPHeaderField:@"content-type"];
[req setHTTPMethod:@"POST"];
NSData *paramData = [paramDataString dataUsingEncoding:NSUTF8StringEncoding];
[req setHTTPBody: paramData];   

NSURLConnection *theConnection=[[NSURLConnection alloc]initWithRequest:req delegate:self];

if (theConnection) {
    NSMutableData *data = [[NSMutableData alloc] init];
    self.receivedData=data;
    [data release];
}

我使用过NSXMLParser委托方法。一个请求完成后(连接释放),然后我创建另一个连接并为第二个请求执行相同的过程。 但它不起作用。

我想知道,如何使用NSXMLParser管理多个请求? 如果你能给我一个代码示例,我非常感激。

2 个答案:

答案 0 :(得分:0)

我想NSThread就是你要找的。

但我不确定,因为我对此并不太了解。

答案 1 :(得分:0)

请注意,NSXMLParser不参与HTTP请求 - 您的意思是NSURLRequest吗?您需要单独提出请求,可能使用单独的块,操作或线程。

为每个请求检索数据后,您需要为每个请求使用单独的NSXMLParser对象。 NSXMLParser的单个实例在初始化时与其XML数据相关联 - 您无法重用解析器。您可以对所有xml解析器使用相同的委托,并且委托可以将第一个参数用于每个xml解析器委托方法(即parser),以了解哪个解析器正在调用给定方法。