如何使用XML解析器POST多个请求?
问题描述:
我想在同一个类中使用XML解析器POST 3个请求。我一次只能做一个请求。当我POST多个请求,它说Parser错误。这是我的尝试。如何使用XML解析器POST多个请求?
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管理多个请求?
如果你能给我一个代码的例子,它的高度赞赏。
答
我猜NSThread是你在找什么。
但我不确定,因为我没有太多的意识到这一点。
答
请注意,NSXMLParser不参与HTTP请求 - 你的意思是NSURLRequest吗?您需要单独制作您的请求,可能使用单独的块,操作或线程。
一旦您检索到每个请求的数据,就需要为每个请求使用单独的NSXMLParser对象。 NSXMLParser的一个实例在初始化时与其XML数据绑定 - 您不能重用解析器。您可以对所有xml解析器使用相同的委托,并且委托可以使用每个xml解析器委托方法(即parser
)的第一个参数来知道哪个解析器正在调用给定的方法。
是的,我已经使用了一个NSXMLParser(但不在代码中)。如果我为每个请求使用单独的解析器对象,可以吗?非常感谢,我会尝试这种方式。 – sajaz
非常感谢您的指导。但是,如何为每个请求使用单独的块/线程?你可以给我一个小代码样本,然后我可以进行进一步的工作 – sajaz