[英]iOS : How to get data from soap response?
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><IOSAPIProjectResponse xmlns="http://tempuri.org/">
<IOSAPIProjectResult>{"result":[{"projectcatname":"Test1","projectname":"Sample1","imgname":"http://someurl.com/UploadImages/projects/5.jpg"},{"projectcatname":"Test2","projectname":"Sample2","imgname":"http://someurl.com/UploadImages/projects/6.jpg"}],"status":"SUCCESS"}
</IOSAPIProjectResult></IOSAPIProjectResponse></soap:Body></soap:Envelope>
我从.asmx API得到以下响应,如何从响应中得到结果?
这是一个XML结果,请使用NSXMLParser,您应使用的主要方法是:
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
[parser parse];
要检查当前元素:
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict;
要从此元素获取字符串:
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string;
看起来您正在将响应编码为JSON。 iOS具有内置的JSON解码功能。 我建议阅读NSJSONSerialization类参考 。
简而言之,您可以使用以下方法从JSON编码数据中获取NSDictionary
对象:
NSError* error;
NSDictionary* dict = [NSJSONSerialization JSONObjectWithData:responseData
options:kNilOptions
error:&error];
然后用NSDicitionary
对象来获取您正在寻找的结果objectForKey
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.