我想使用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管理多个请求? 如果你能给我一个代码示例,我非常感激。
答案 0 :(得分:0)
我想NSThread就是你要找的。 p>
但我不确定,因为我对此并不太了解。
答案 1 :(得分:0)
请注意,NSXMLParser不参与HTTP请求 - 您的意思是NSURLRequest吗?您需要单独提出请求,可能使用单独的块,操作或线程。
为每个请求检索数据后,您需要为每个请求使用单独的NSXMLParser对象。 NSXMLParser的单个实例在初始化时与其XML数据相关联 - 您无法重用解析器。您可以对所有xml解析器使用相同的委托,并且委托可以将第一个参数用于每个xml解析器委托方法(即parser
),以了解哪个解析器正在调用给定方法。