Iphone 解析从Twitpic API返回的数据

Iphone 解析从Twitpic API返回的数据,iphone,xml,api,twitter,twitpic,Iphone,Xml,Api,Twitter,Twitpic,我只是想问你是否有人能帮我解析Twitpic API返回的数据 我正在使用Cocoa的ASIHTTPRequest包装器创建HTTPFormRequest。这一切都发生在iPhone应用程序中: NSURL *url = [NSURL URLWithString:@"http://twitpic.com/api/upload"]; NSString *username = t_user; NSString *password = t_pass; NSData *twitpicImage

我只是想问你是否有人能帮我解析Twitpic API返回的数据

我正在使用Cocoa的ASIHTTPRequest包装器创建HTTPFormRequest。这一切都发生在iPhone应用程序中:

    NSURL *url = [NSURL URLWithString:@"http://twitpic.com/api/upload"];
NSString *username = t_user;
NSString *password = t_pass;
NSData *twitpicImage = UIImagePNGRepresentation(imageView.image);

// Now, set up the post data:
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];

[request setPostValue:twitpicImage forKey:@"media"];
[request setPostValue:username forKey:@"username"];
[request setPostValue:password forKey:@"password"];
[request setData:twitpicImage forKey:@"media"];

// Initiate the WebService request
[request start];
if ([request error]) {

    NSLog(@"%@", [request error]);

} else if ([request responseString]) {

    NSLog(@"%@", [request responseString]);

}}
现在是最困难的部分,我不知道如何解析[request responseString]中的数据。我知道我需要使用NSXMLParser,但我不知道如何使用它。我所需要的就是得到图像的url


Thx。请在这里随意查看我的小XML解析类

我已经开始使用它们解析上传到yfrog.com的图像的响应

基本上我喜欢这个

NameValueParser.m
中,我将entry标记更改为
rsp
,如下所示

entryName = [[NSString stringWithString:@"rsp"] retain];
NameValueParser *parser = [NameValueParser parser];
[parser addFieldName:@"statusid"];
[parser addFieldName:@"userid"];
[parser addFieldName:@"mediaid"];
[parser addFieldName:@"mediaurl"];
[parser addFieldName:@"err"];
[parser parseData:responseData]; // the response received by ASIHTTPRequest

NSArray *rspArray = [parser list];

NSLog(@"%@", rspArray); // Have a look at it here
然后在收到响应的地方,我像这样解析它

entryName = [[NSString stringWithString:@"rsp"] retain];
NameValueParser *parser = [NameValueParser parser];
[parser addFieldName:@"statusid"];
[parser addFieldName:@"userid"];
[parser addFieldName:@"mediaid"];
[parser addFieldName:@"mediaurl"];
[parser addFieldName:@"err"];
[parser parseData:responseData]; // the response received by ASIHTTPRequest

NSArray *rspArray = [parser list];

NSLog(@"%@", rspArray); // Have a look at it here

使用NSScanner尝试本教程底部所述的方法。它们显示的正是您需要的内容,只检索上传图像的mediaurl=URL

NSScanner *scanner = [NSScanner scannerWithString:responseString]; ...

GSTwitPicEngine同时进行XML和JSON解析:

不过,为什么不使用JSON格式作为Twitpic API响应呢?使用yajl、TouchJSON、json框架或其他json库很容易解析和处理