【问题标题】:How to POST multiple requests with XML parser?如何使用 XML 解析器发布多个请求?
【发布时间】:2011-12-02 05:40:31
【问题描述】:

我想使用 XML 解析器在同一个类中发布 3 个请求。我一次只能处理一个请求。当我发布多个请求时,它显示解析器错误。我就是这样尝试的。

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 管理多个请求?
如果您能给我一个代码示例,非常感谢。

【问题讨论】:

    标签: iphone objective-c ios ios4


    【解决方案1】:

    我猜 NSThread 就是你要找的东西。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 是的,我使用了一个 NSXMLParser(但在代码 smale 中没有)。如果我为每个请求使用单独的解析器对象,可以吗?非常感谢,我会尝试这种方式。
      • 非常感谢您的指导。但是如何为每个请求使用单独的块/线程?你能不能给一个小代码示例,然后我可以进行进一步的工作
      猜你喜欢
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 2015-02-23
      • 2018-09-28
      • 2021-06-07
      • 1970-01-01
      • 2020-04-16
      • 2018-10-19
      相关资源
      最近更新 更多